Dockerfile 961 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. # Étape 1 : Build
  2. FROM node:20-alpine AS builder
  3. # Définition du répertoire de travail
  4. WORKDIR /app
  5. # Copie des fichiers package.json et package-lock.json
  6. COPY package.json package-lock.json ./
  7. # Installation des dépendances
  8. RUN npm ci --legacy-peer-deps || npm install --legacy-peer-deps
  9. # Copie du code source
  10. COPY . .
  11. # Build de l'application
  12. ARG VITE_API_URL
  13. ENV VITE_API_URL=${VITE_API_URL}
  14. RUN VITE_API_URL=${VITE_API_URL}
  15. RUN npm run build
  16. # Étape 2 : Serveur Nginx pour la production et la préproduction
  17. FROM nginx:alpine AS runner
  18. # Suppression du fichier de configuration par défaut de Nginx
  19. RUN rm -rf /etc/nginx/conf.d/default.conf
  20. # Copie de la configuration Nginx pour servir l’application
  21. COPY nginx.conf /etc/nginx/conf.d/default.conf
  22. # Copie des fichiers de build de l'application
  23. COPY --from=builder /app/dist /usr/share/nginx/html
  24. # Exposition du port
  25. EXPOSE 80
  26. # Commande de démarrage
  27. CMD ["nginx", "-g", "daemon off;"]