dcb-service-report/Dockerfile
Mamadou Khoussa [028918 DSI/DAC/DIF/DS] 415a98efa8 move dockerfile
2025-12-01 01:02:37 +00:00

68 lines
1.5 KiB
Docker

# FILE: Dockerfile (VERSION CORRIGÉE)
# ============================================================================
FROM node:20-alpine AS builder
# 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 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 src ./src
# Build l'application
RUN npm run build
# Vérifier que dist existe
RUN ls -la dist/
# ============================================================================
# Production stage
# ============================================================================
FROM node:20-alpine AS production
# Ajouter OpenSSL pour Prisma
RUN apk add --no-cache openssl
WORKDIR /app
# Copier package.json
COPY package*.json ./
# Installer uniquement les dépendances de production
RUN npm ci --only=production && npm cache clean --force
# Copier le schema Prisma
COPY --from=builder /app/prisma ./prisma/
# Générer le client Prisma en production
RUN npx prisma generate
# Copier les fichiers buildés depuis le builder
COPY --from=builder /app/dist ./dist
# Créer un utilisateur non-root
RUN addgroup -g 1001 -S nodejs && \
adduser -S nestjs -u 1001 && \
chown -R nestjs:nodejs /app
USER nestjs
EXPOSE 3001
ENV NODE_ENV=production
# Démarrer l'application
CMD ["node", "dist/src/main.js"]