# Stage 1: install deps and build FROM node:20-alpine AS builder WORKDIR /app # Install pnpm RUN corepack enable && corepack prepare pnpm@latest --activate # Copy manifests COPY package.json pnpm-lock.yaml* ./ # Install deps RUN pnpm install --prod=false # Copy source COPY . . # Build RUN pnpm build # Stage 2: production image FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=3000 # Install pnpm runtime RUN corepack enable && corepack prepare pnpm@latest --activate # Copy only production files COPY --from=builder /app/package.json ./package.json COPY --from=builder /app/.next ./.next COPY --from=builder /app/public ./public COPY --from=builder /app/node_modules ./node_modules EXPOSE 3000 CMD ["pnpm", "start"]