# Stage 1: build Vue SPA FROM node:20-alpine AS build WORKDIR /app COPY web/package*.json ./ RUN npm ci --prefer-offline COPY web/ ./ ARG VITE_BASE_URL=/ ARG VITE_API_BASE= ENV VITE_BASE_URL=$VITE_BASE_URL ENV VITE_API_BASE=$VITE_API_BASE RUN npm run build # Stage 2: serve via nginx FROM nginx:alpine COPY docker/web/nginx.conf /etc/nginx/conf.d/default.conf COPY --from=build /app/dist /usr/share/nginx/html EXPOSE 80