Mirrors the k8s manifests in deploy/ as a local dev stack: - cameleer-postgres (matches deploy/cameleer-postgres.yaml) - cameleer-clickhouse (matches deploy/cameleer-clickhouse.yaml, default CLICKHOUSE_DB=cameleer) - cameleer-server (built from Dockerfile, env mirrors deploy/base/server.yaml) - cameleer-ui (built from ui/Dockerfile, served on host :8080 to leave :5173 free for Vite dev) Dockerfile + ui/Dockerfile: REGISTRY_TOKEN is now optional (empty → skip Maven/npm auth). cameleer-common package is public, so anonymous pulls succeed; private packages still require the token. Backend defaults tuned for local E2E: - RUNTIME_ENABLED=false (no Docker-in-Docker deployments in dev stack) - OUTBOUND_HTTP_ALLOW_PRIVATE_TARGETS=true (so webhook tests can target host.docker.internal etc.) - UIUSER/UIPASSWORD=admin/admin (matches Playwright E2E_ADMIN_USER/PASS defaults) - CORS includes both :5173 (Vite) and :8080 (nginx)
41 lines
1.2 KiB
Docker
41 lines
1.2 KiB
Docker
FROM --platform=$BUILDPLATFORM node:22-alpine AS build
|
|
WORKDIR /app
|
|
|
|
ARG REGISTRY_TOKEN=""
|
|
COPY package.json package-lock.json .npmrc ./
|
|
RUN if [ -n "$REGISTRY_TOKEN" ]; then \
|
|
echo "//gitea.siegeln.net/api/packages/cameleer/npm/:_authToken=${REGISTRY_TOKEN}" >> .npmrc; \
|
|
fi && \
|
|
npm ci
|
|
|
|
COPY . .
|
|
|
|
# Upgrade design system to latest dev snapshot (after COPY to bust Docker cache)
|
|
RUN if [ -n "$REGISTRY_TOKEN" ]; then \
|
|
echo "//gitea.siegeln.net/api/packages/cameleer/npm/:_authToken=${REGISTRY_TOKEN}" >> .npmrc; \
|
|
fi && \
|
|
npm install @cameleer/design-system@dev && \
|
|
rm -f .npmrc
|
|
|
|
ARG VITE_ENV_NAME=PRODUCTION
|
|
ARG VITE_APP_VERSION=dev
|
|
ENV VITE_ENV_NAME=$VITE_ENV_NAME
|
|
ENV VITE_APP_VERSION=$VITE_APP_VERSION
|
|
RUN npm run build
|
|
|
|
FROM nginx:1.27-alpine
|
|
COPY --from=build /app/dist /usr/share/nginx/html
|
|
COPY nginx.conf /etc/nginx/templates/default.conf.template
|
|
COPY docker-entrypoint.sh /cameleer-entrypoint.sh
|
|
RUN chmod +x /cameleer-entrypoint.sh
|
|
|
|
# Default API URL — override via K8s env or docker run -e
|
|
ENV CAMELEER_API_URL=http://cameleer-server:8081
|
|
# Base path for serving the SPA from a subpath (e.g., /server/). Default: /
|
|
ENV BASE_PATH=/
|
|
|
|
ENTRYPOINT ["/cameleer-entrypoint.sh"]
|
|
CMD ["nginx", "-g", "daemon off;"]
|
|
|
|
EXPOSE 80
|