# syntax=docker/dockerfile:1 # Étape 1 : Construction FROM node:18-alpine AS builder WORKDIR /app # On copie uniquement les fichiers de dépendances en premier COPY package*.json ./ # Utilisation de "npm ci" (plus rapide et strict que "npm install") # Le paramètre --mount crée un cache temporaire uniquement pendant le build RUN --mount=type=cache,target=/root/.npm npm ci # On copie le reste des sources COPY . . # On lance la compilation # Remplace "build" par la commande exacte de ton projet si nécessaire RUN npm run build # Étape 2 : Serveur Nginx minimaliste FROM nginx:alpine # On vide le dossier de base de Nginx pour éviter de garder des fichiers inutiles RUN rm -rf /usr/share/nginx/html/* # On copie uniquement les fichiers compilés depuis l'étape 1 # Attention : si tu utilises Vite, le dossier source sera /app/dist au lieu de /app/build COPY --from=builder /app/build /usr/share/nginx/html EXPOSE 80 # Nginx se lance au premier plan CMD ["nginx", "-g", "daemon off;"]