# ─── Stage 1: Build ─────────────────────────────────────────────────────── FROM node:slim AS builder WORKDIR /app # Install dependencies COPY package.json package-lock.json ./ RUN yarn install --frozen-lockfile COPY . . ARG VITE_API_BASE_URL ENV VITE_API_BASE_URL=${VITE_API_BASE_URL} RUN yarn build # ─── Stage 2: Serve ──────────────────────────────────────────────────────── FROM nginx:stable-alpine # Remove default nginx html RUN rm -rf /usr/share/nginx/html/* # Replace default nginx.conf COPY nginx.conf /etc/nginx/nginx.conf # Copy our built files into nginx’s html folder COPY --from=builder /app/dist /usr/share/nginx/html # (Optional) If you need any custom nginx.conf, COPY it here— # e.g. COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]