# syntax=docker/dockerfile:1 # PROD image: build static SPA, serve with nginx. Self-contained. # Build context = mcma-webui/. The future prod compose puts a real proxy in # front; this image just serves the built assets with SPA fallback. # -- build stage ---------------------------------------------------------- FROM node:22-slim AS build WORKDIR /app COPY package.json package-lock.json modern-sk-*.tgz ./ RUN npm ci COPY . . # Bake the API base URL at build time (rsbuild inlines PUBLIC_* vars). # Same-origin default ('/api/v1') works behind any reverse proxy. ARG PUBLIC_API_BASE_URL=/api/v1 ENV PUBLIC_API_BASE_URL=$PUBLIC_API_BASE_URL RUN npm run build # -- runtime stage -------------------------------------------------------- FROM nginx:1.27-alpine AS runtime COPY dockerfiles/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/dist /usr/share/nginx/html EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]