- Backend Dockerfile: install deps into /venv so bind-mounts on /app don't overwrite them - Frontend Dockerfile: add multi-stage with dev target for hot-reload (npm run dev --host), production build chains from it - docker-compose.yml: use dev command/target, fix volume strategy, add API_TARGET env for vite proxy inside containers - Keycloak seed runs inside a container (seed-keycloak service) instead of requiring a local Python venv - demo.sh (was dev-docker.sh): only needs podman + curl, no local Python/Node - dev.sh (was dev-local.sh): local dev with Keycloak, replaces the old no-Keycloak dev.sh which was redundant - Update docs, .gitignore, .dockerignore for new script names Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
23 lines
555 B
Docker
23 lines
555 B
Docker
ARG NODE_IMAGE=node:22-slim
|
|
ARG NGINX_IMAGE=nginx:1.27-alpine
|
|
|
|
# ── Dev stage (used by docker-compose for local development) ──
|
|
FROM ${NODE_IMAGE} AS dev
|
|
WORKDIR /app
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci
|
|
COPY . .
|
|
EXPOSE 5173
|
|
CMD ["npm", "run", "dev", "--", "--host"]
|
|
|
|
# ── Build stage ──
|
|
FROM dev AS builder
|
|
RUN npm run build
|
|
|
|
# ── Production stage ──
|
|
FROM ${NGINX_IMAGE}
|
|
COPY --from=builder /app/dist /usr/share/nginx/html
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
EXPOSE 8080
|
|
CMD ["nginx", "-g", "daemon off;"]
|