# syntax=docker/dockerfile:1 FROM node:22-alpine AS builder WORKDIR /app # NEXT_PUBLIC_* vars are inlined into the client bundle at build time, so # this must be supplied per-environment via: # docker build --build-arg NEXT_PUBLIC_API_URL=https://api.example.com . # Setting it only in the runtime ConfigMap has no effect on the built bundle. ARG NEXT_PUBLIC_API_URL ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL COPY package.json package-lock.json ./ RUN npm ci COPY . . RUN npx next typegen RUN npm run build FROM node:22-alpine AS runtime ENV NODE_ENV=production WORKDIR /app COPY --from=builder /app/public ./public COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static EXPOSE 3000 USER node CMD ["node", "server.js"]