En savoir plus

Compose

L'histoire de Fig et de YAML : pour comprendre d'où vient la partition et pourquoi elle s'écrit ainsi.

420-5A4-MT · Serveurs évolutifs · Compose

D'où vient Compose ?

Genèse · 2014 Un petit outil londonien nommé Fig

Compose est né en 2013 sous le nom de Fig, créé par Orchard, une jeune entreprise de Londres. Fig a inventé le fichier fig.yml et la commande fig up : décrire une application multi-conteneurs dans un seul fichier. Docker a racheté Orchard en 2014 : Fig est devenu docker-compose.

🌱 1. Fig & Orchard (2013)
Le pionnier : fig.yml et fig up, l'idée de décrire l'application entière dans un fichier.
⚙️ 2. docker-compose (2014)
L'outil en Python, avec son trait d'union, installé à part du moteur Docker.
🚀 3. Compose v2 (2021)
Réécrit en Go et intégré au client : docker compose, sans trait d'union.
L'idée de Fig a survécu à tous ses noms : décrire l'état voulu dans un fichier, et laisser l'outil s'arranger pour y arriver.

D'où vient YAML ?

Genèse · 2001 YAML Ain't Markup Language

YAML est né en 2001, pensé pour être lisible par les humains d'abord. Son acronyme est une blague récursive : « YAML Ain't Markup Language » : ce n'est pas un langage de balisage, c'est un format pour décrire des données.

📖 1. Lisible d'abord
Pas de chevrons ni d'accolades : l'indentation porte la structure, comme en Python.
🧩 2. Un sur-ensemble de JSON
Tout document JSON valide est aussi du YAML valide : les deux mondes se parlent.
🌍 3. La langue de l'infrastructure
Compose, Kubernetes, Ansible, les chaînes CI : l'infrastructure moderne se décrit en YAML.
La règle qui ne pardonne pas : deux espaces, jamais de tabulations : le tabulateur est interdit par la spécification YAML.

Sous le capot de docker compose up

Mécanismes Ce que up fait sans le dire

Une seule commande, plusieurs opérations invisibles : Compose prépare la scène avant de lever le rideau.

🕸️ 1. Le réseau du projet
Compose crée un réseau privé nommé selon le projet; chaque service y entre automatiquement.
📛 2. Le DNS par nom de service
Sur ce réseau, web trouve basededonnees par son nom : c'est le DNS interne de Docker.
🏷️ 3. Les étiquettes
Chaque conteneur reçoit des étiquettes (com.docker.compose.project) : c'est ainsi que down sait exactement quoi ranger.
Le nom du projet vient du répertoire courant : deux partitions dans deux répertoires ne se marchent jamais dessus.