La partition
Acte 2 : décrire toute l'application dans un seul fichier, prête à se lever d'un seul geste. Docker Compose.
420-5A4-MT · Serveurs évolutifs · ComposeLes commandes s'allongent...
Deux conteneurs à démarrer dans le bon ordre, un réseau, des volumes, des ports, des mots de passe : la semaine dernière, vos commandes docker run faisaient trois lignes chacune. Une erreur de frappe et rien ne fonctionne. L'entreprise décide d'écrire la recette complète une fois pour toutes : une partition, que n'importe quelle machine saura rejouer.
- Les musiciens changent, la partition reste : c'est elle, le vrai capital.
- Objectif du jour : décrire l'application au lieu de la commander.
Docker Compose
Docker Compose est l'outil qui définit et exécute des applications multi-conteneurs. On décrit les services de l'application dans un fichier YAML, et une seule commande construit et démarre le tout.
On ne dit plus comment faire, étape par étape : on décrit l'état voulu, et Compose s'arrange pour y arriver.
La recette est un fichier texte : on la versionne, on la partage, on la relit. L'installation redevient une connaissance écrite.
Anatomie d'un docker-compose.yml
En YAML, l'indentation est la grammaire : deux espaces, jamais de tabulations. La moitié des bogues de la semaine seront des problèmes d'indentation.
Les clés secrètes
Les services se configurent par variables d'environnement : noms de bases, utilisateurs, mots de passe. C'est pratique, mais un mot de passe écrit en clair dans un fichier partagé est un mot de passe donné.
- Le fichier .env garde les secrets à part : la partition reste publiable, les clés restent privées.
- Règle du cours : jamais de vrai mot de passe dans un fichier docker-compose.yml remis ou versionné.
Lever et coucher l'application
La nuance stop, down, down --volumes est une question d'examen classique... et surtout la différence entre une pause, un rangement et un incendie volontaire.
Avant de passer au laboratoire
- Compose décrit l'application entière (services, volumes, réseaux) dans un fichier YAML unique.
- Un service = un conteneur; les services se trouvent par leur nom.
- Les secrets vivent dans .env, pas dans la partition.
- up -d pour lever, down pour ranger, down --volumes pour tout effacer.
Au laboratoire : le WordPress de la petite entreprise devient une partition en trois services (web, base de données, phpMyAdmin), et vous prouverez que les données survivent au grand ménage.
Version de départ · ce diaporama va s'enrichir