# Fase 1: Build FROM node:18-alpine AS builder # Imposta la directory di lavoro WORKDIR /app # Copia i file di configurazione e dipendenze COPY package.json pnpm-lock.yaml* ./ # Installa le dipendenze RUN npm install --force # Copia il resto dei file dell'app COPY . . # Build dell'app Next.js RUN npm run build # Fase 2: Runtime (immagine più leggera) FROM node:18-alpine AS runner # Imposta la directory di lavoro WORKDIR /app # Imposta variabile d'ambiente per produzione ENV NODE_ENV=production # Copia solo ciò che serve per l'esecuzione COPY --from=builder /app/public ./public COPY --from=builder /app/.next ./.next COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./package.json # Porta esposta (3000 di default per Next.js) EXPOSE 3000 # Comando di avvio CMD ["npm", "start"]