From 9d848817a07969fb51444292cccad0fa97fea144 Mon Sep 17 00:00:00 2001 From: "Mamadou Khoussa [028918 DSI/DAC/DIF/DS]" Date: Mon, 1 Dec 2025 00:51:19 +0000 Subject: [PATCH] move dockerfile --- Dockerfile | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index f8e9026..a3a5d2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,28 +1,32 @@ +# FILE: Dockerfile (VERSION CORRIGÉE) # ============================================================================ -# Build stage FROM node:20-alpine AS builder -# Ajouter des dépendances nécessaires pour Prisma +# Ajouter des dépendances nécessaires RUN apk add --no-cache libc6-compat openssl WORKDIR /app # Copier les fichiers de dépendances COPY package*.json ./ +COPY tsconfig*.json ./ COPY prisma ./prisma/ -# Installer les dépendances +# Installer TOUTES les dépendances (dev incluses pour le build) RUN npm ci # Générer le client Prisma RUN npx prisma generate # Copier le code source -COPY . . +COPY src ./src # Build l'application RUN npm run build +# Vérifier que dist existe +RUN ls -la dist/ + # ============================================================================ # Production stage # ============================================================================ @@ -37,10 +41,10 @@ WORKDIR /app COPY package*.json ./ # Installer uniquement les dépendances de production -RUN npm ci --only=production +RUN npm ci --only=production && npm cache clean --force # Copier le schema Prisma -COPY prisma ./prisma/ +COPY --from=builder /app/prisma ./prisma/ # Générer le client Prisma en production RUN npx prisma generate @@ -48,21 +52,20 @@ RUN npx prisma generate # Copier les fichiers buildés depuis le builder COPY --from=builder /app/dist ./dist -# Créer un utilisateur non-root pour la sécurité +# Vérifier que main.js existe +RUN ls -la dist/ && \ + if [ ! -f dist/main.js ]; then echo "ERROR: dist/main.js not found!"; exit 1; fi + +# Créer un utilisateur non-root RUN addgroup -g 1001 -S nodejs && \ - adduser -S nestjs -u 1001 + adduser -S nestjs -u 1001 && \ + chown -R nestjs:nodejs /app -# Changer les permissions -RUN chown -R nestjs:nodejs /app - -# Utiliser l'utilisateur non-root USER nestjs -# Exposer le port -EXPOSE 3000 +EXPOSE 3001 -# Variable d'environnement ENV NODE_ENV=production # Démarrer l'application -CMD ["node", "dist/main"] \ No newline at end of file +CMD ["node", "dist/main.js"] \ No newline at end of file