# Étape 1 : Build FROM node:20 AS builder WORKDIR /app # Build arguments for environment variables ARG NEXT_PUBLIC_API_URL ARG NEXT_PUBLIC_FRONTEND_URL ARG NEXT_PUBLIC_GOOGLE_CLIENT_ID ARG NEXT_PUBLIC_FACEBOOK_APP_ID # Set environment variables for build ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL ENV NEXT_PUBLIC_FRONTEND_URL=$NEXT_PUBLIC_FRONTEND_URL ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=$NEXT_PUBLIC_GOOGLE_CLIENT_ID ENV NEXT_PUBLIC_FACEBOOK_APP_ID=$NEXT_PUBLIC_FACEBOOK_APP_ID COPY package*.json ./ RUN npm ci COPY . . # Build Next.js - doit réussir pour continuer RUN npm run build # Vérifier que .next existe RUN test -d .next || (echo "ERROR: .next directory not found after build!" && exit 1) # Étape 2 : Exécution FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production # Copy Next.js build output and dependencies COPY --from=builder /app/.next ./.next COPY --from=builder /app/public ./public COPY --from=builder /app/package*.json ./ COPY --from=builder /app/node_modules ./node_modules # Set environment variables at runtime ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL ENV NEXT_PUBLIC_FRONTEND_URL=$NEXT_PUBLIC_FRONTEND_URL ENV NEXT_PUBLIC_GOOGLE_CLIENT_ID=$NEXT_PUBLIC_GOOGLE_CLIENT_ID ENV NEXT_PUBLIC_FACEBOOK_APP_ID=$NEXT_PUBLIC_FACEBOOK_APP_ID EXPOSE 3000 CMD ["npm", "run", "start"]