- Intermédiaire
- Sécurité
Comment ça marche
Beaucoup d'images fournissent un utilisateur : node dans les images node, nobody presque partout, nonroot dans distroless ; sinon crée-le avec adduser. Place USER après les étapes qui ont besoin de root, comme l'installation de paquets, et donne à l'utilisateur les dossiers où il écrit avec COPY --chown ou chown.
Ce qui casse
Passer à USER sans corriger les propriétaires donne « EACCES: permission denied » sur le dossier où l'application écrit. Un volume nommé prend le propriétaire du dossier de l'image la première fois qu'il est monté : crée donc ce dossier avec le bon propriétaire dans l'image.
Dans un Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
RUN mkdir -p /app/uploads && chown node:node /app/uploads
USER node
CMD ["node", "src/server.js"]
Regarde-le casser, puis répare-le
Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.