# Stage de build FROM node:20-alpine AS builder WORKDIR /app # Installation de pnpm RUN corepack enable && corepack prepare pnpm@latest --activate # Copie des fichiers de dépendances COPY package.json pnpm-lock.yaml ./ # Installation des dépendances RUN pnpm install --frozen-lockfile # Copie du code source COPY . . # Build de l'application RUN pnpm build # Stage de production FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production # Installation de pnpm RUN corepack enable && corepack prepare pnpm@latest --activate # Copie des dépendances de production COPY --from=builder /app/package.json /app/pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile --prod # Copie des fichiers nécessaires depuis le stage de build COPY --from=builder /app/.next ./.next COPY --from=builder /app/next.config.mjs ./ # Copie du dossier public (créé avec .gitkeep pour être tracké) COPY --from=builder /app/public ./public # Exposition du port EXPOSE 3000 # Commande de démarrage CMD ["pnpm", "start"]