# Web production image: build the SPA, serve via nginx with SPA fallback FROM node:22-alpine AS build WORKDIR /w ARG VITE_API_BASE=http://api:8000/api ENV VITE_API_BASE=$VITE_API_BASE COPY apps/web/package.json apps/web/package-lock.json ./ RUN npm ci --no-audit --no-fund COPY apps/web ./ RUN npm run build FROM nginx:1.27-alpine COPY apps/web/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /w/dist /usr/share/nginx/html EXPOSE 80