# Image de base légère Node.js (version LTS) FROM node:20-alpine # Définition du répertoire de travail WORKDIR /app # Copie des manifests de dépendances en attribuant la propriété à l'utilisateur 'node' COPY --chown=node:node backend/package*.json ./backend/ # Installation propre des dépendances de production RUN cd backend && npm ci --omit=dev # Copie de l'ensemble du projet avec la bonne propriété utilisateur COPY --chown=node:node . . # Passage à l'utilisateur non-privilégié 'node' USER node # Variables d'environnement ENV NODE_ENV=production ENV PORT=3000 # Exposition du port (3000 est > 1024, donc autorisé sans privilèges root) EXPOSE 3000 # Démarrage du serveur Node.js CMD ["node", "backend/server.js"]