D'une commande par conteneur à un fichier
Compose remplace les longues commandes docker run par une description déclarative : on liste les services, leurs images, ports, volumes, variables — et Compose crée le réseau, les volumes et démarre tout dans le bon ordre.
Le fichier compose.yaml
Un premier exemple à deux services (base + API) :
services: mongo: image: mongo:7 volumes: [ "fioul-data:/data/db" ] api: build: ./api ports: [ "8080:8080" ] environment: SPRING_DATA_MONGODB_URI: mongodb://mongo:27017/fioul volumes: fioul-data:
mongo (le nom du service), pas localhost (rappel du chapitre 5).Démarrer & arrêter
docker compose up -d # build + démarre tout en arrière-plan docker compose ps # état des services docker compose logs -f api docker compose down # arrête et supprime (garde les volumes)
Ordonner le démarrage
depends_on démarre la base avant l'API. Pour attendre qu'elle soit prête (et pas seulement démarrée), on combine avec un healthcheck — vu au chapitre 7.
api:
depends_on: [ mongo ]
Écris un premier compose.yaml à deux services (mongo + api) et lance-le avec docker compose up -d. Vérifie que l'API répond sur localhost:8080 et lit bien la base. Le chapitre 7 ajoute la 3e couche et les réglages de production.
- Compose décrit toute l'appli (services, volumes, réseau) en un fichier YAML.
docker compose up -d/downpour tout démarrer / arrêter.- Les services se joignent par leur nom ;
depends_onordonne le démarrage.