Créez, dans le dossier mini-carnet, à côté du Dockerfile, un fichier nommé compose.yaml. C'est le nom recommandé aujourd'hui pour un fichier Docker Compose ; vous croiserez parfois l'ancien nom docker-compose.yml dans de vieux projets, toujours reconnu, mais qui n'est plus la convention à privilégier pour un nouveau projet.

Le fichier, section par section

Tout fichier Compose commence par la section services, qui liste chaque conteneur à gérer. Ici, un seul service, nommé mini-carnet (ce nom vous appartient, vous auriez pu en choisir un autre).

  • build: . indique de construire l'image à partir du Dockerfile présent dans le dossier courant, exactement ce que faisait docker build -t mini-carnet . au guide 15.
  • ports reprend, sous forme de liste, ce que faisait -p 3000:3000 au guide 16.
  • environment reprend ce que faisait -e APP_NAME="Carnet de Julie" au guide 17, mais sans guillemets autour de la valeur : ici, ils ne sont pas nécessaires puisqu'aucun deux-points ne s'y trouve.
  • volumes, à l'intérieur du service, reprend -v mini-carnet-data:/app/data du guide 18.

La dernière section, volumes tout en bas, au même niveau que services et non à l'intérieur, déclare l'existence du volume nommé mini-carnet-data pour l'ensemble du fichier. C'est cette déclaration qui permet à Compose de le créer automatiquement s'il n'existe pas encore.

Pas de champ « version »

D'anciens fichiers Compose commencent parfois par une ligne version: "3.8" ou similaire. Ce champ n'est plus nécessaire depuis un moment : Compose applique aujourd'hui toujours la syntaxe la plus récente qu'il connaît, et affiche même un avertissement si ce champ obsolète est présent. Ne le reproduisez pas dans vos propres fichiers.

Lancer avec docker compose up

Depuis le dossier mini-carnet, arrêtez d'abord tout conteneur nommé mon-carnet lancé manuellement lors des guides précédents, pour éviter un conflit de nom, puis lancez :

-d fonctionne exactement comme pour docker run : le conteneur démarre en arrière-plan. Ouvrez http://localhost:3000 : Mini-Carnet répond, avec le nom personnalisé défini dans le fichier.

Vérifier et tout arrêter

docker compose ps liste les services gérés par ce fichier Compose précis, un peu comme docker ps mais limité à ce projet. docker compose down arrête et supprime les conteneurs créés par Compose (mais conserve le volume nommé, sauf si vous ajoutez l'option -v à cette commande, qui le supprimerait aussi).

Vérifiez que vous avez compris

Vous tapez docker compose down, puis docker compose up -d juste après. Le compteur de visites de Mini-Carnet repart-il de zéro ?

Non. docker compose down, sans l'option -v, supprime les conteneurs mais conserve le volume nommé mini-carnet-data déclaré dans le fichier. Le prochain docker compose up -d recrée un nouveau conteneur, relié au même volume déjà existant, exactement comme au guide 18 avec docker run.