# ── Stage 1: Install ────────────────────────────────── FROM node:20-alpine AS deps WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci # ── Stage 2: Build ──────────────────────────────────── FROM node:20-alpine AS build WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . # Dummy env vars for Next.js build-time page data collection ENV NEXT_PUBLIC_BACKEND_URL=http://localhost:4016 ENV NEXT_PUBLIC_PLATFORM_URL=http://localhost:4003 RUN npm run build # ── Stage 3: Runtime ────────────────────────────────── FROM node:20-alpine AS runtime WORKDIR /app ENV NODE_ENV=production COPY --from=build /app/.next/standalone ./ COPY --from=build /app/.next/static ./.next/static COPY --from=build /app/public ./public EXPOSE 3000 CMD ["node", "server.js"]