Quelques instructions pour améliorer vos Dockerfile pour Node.js.
# Utiliser une version de Node spécifique pour éviter les surprises lors de nouvelles releases.
FROM node:19.4-alpine
# Configurer Node pour la production.
ENV NODE_ENV production
# Sélectionner un répertoire de travail explicitement.
WORKDIR /usr/src/app
# Copier uniquement les fichiers requis pour installer les dépendances pour une meilleure gestion du cache.
COPY package*.json ./
# Installer uniquement les dépendances de production.
RUN npm ci --only=production
# alternative pour bénéficier du cache :
RUN --mount=type=cache,target=/usr/src/app/.npm \
npm set cache /usr/src/app/.npm && \
npm ci --only=production
# Éviter le mode root.
USER node
# Copier le reste du code source (uniquement les fichiers indispensables) après installation des dépendances.
COPY --chown=node:node ./src/ .
# Indiquer explicitement le port exposé par les containers qui utilisent cette image.
EXPOSE 3000
CMD ["node", "index.js"]