Montages de dossier (bind mounts)

Un bind mount place un dossier du serveur à l'intérieur du conteneur. Un changement d'un côté est vu aussitôt de l'autre, ce qui est idéal en développement et risqué en production.

Comment ça marche

-v ./src:/app/src avec docker run, ou une entrée volumes qui commence par un chemin dans Compose. Le montage masque ce que l'image contenait à ce chemin. Les fichiers gardent le propriétaire et les droits qu'ils ont sur le serveur, si bien qu'un conteneur non root peut ne pas pouvoir y écrire.

Ce qui casse

Monter tout le projet sur /app masque aussi le node_modules installé dans l'image : l'application plante avec « Cannot find module ». En production, un bind mount rend le conteneur dépendant de fichiers absents de l'image : ce que tu as testé n'est pas ce qui tourne.

Dans compose.yaml

services:
  api:
    build: ./api
    command: ["npx", "nodemon", "src/server.js"]
    volumes:
      - ./api/src:/app/src

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.