Infra, Ops & WorkflowAttention100100/100
yunt-docker-compose
Docker Compose (Yunt Academy) : compose.yaml, services, depends_on/healthcheck, volumes/réseaux de projet, variables d’environnement, commandes up/down/logs et debug multi-conteneurs. À utiliser pour orchestrer une app locale multi-services.
ou envoie-le directement à ton agent.
Installer dans ton projet
$ npx arboris-cli@latest install yunt-docker-composeYunt
academy.yunt.fr
Contenu à copier
---
name: yunt-docker-compose
description: >
Docker Compose (Yunt Academy) : compose.yaml, services, depends_on/healthcheck,
volumes/réseaux de projet, variables d’environnement, commandes up/down/logs
et debug multi-conteneurs. À utiliser pour orchestrer une app locale multi-services.
metadata:
origin: Yunt
course: Conteneuriser ses projets web avec Docker
source: https://academy.yunt.fr/dashboard/catalogue
---
# Yunt — Orchestrer avec Docker Compose
Compétences du cours Yunt Academy (Compose + multi-conteneurs), condensées pour un agent.
## When to Activate
- Plusieurs conteneurs liés (app + DB + cache…)
- Remplacer une longue série de `docker run`
- Partager un environnement reproductible (`compose.yaml`)
- Diagnostiquer un projet Compose qui ne démarre pas
## When not to use
- Un seul conteneur ponctuel → `yunt-docker-containers`
- Cluster multi-machines (Kubernetes, Swarm avancé) — hors scope de ce cours
## Concepts
- **Compose v2** : `docker compose` (plugin). Vérifier : `docker compose version`.
- Fichiers reconnus : `compose.yaml`, `compose.yml`, `docker-compose.y(a)ml`.
- La clé top-level `version:` est obsolète.
- **Projet** : préfixe des ressources (dérivé du dossier).
- **Service** : unité ; son nom = DNS sur le réseau du projet.
- Réseau de projet créé implicitement ; volumes nommés déclarés en bas de fichier.
## Exemple minimal
```yaml
services:
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: app
POSTGRES_DB: app
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U app -d app"]
interval: 5s
timeout: 3s
retries: 10
api:
build: .
ports:
- "3000:3000"
environment:
DATABASE_URL: postgres://app:app@db:5432/app
depends_on:
db:
condition: service_healthy
volumes:
pgdata:
```
## Commandes
```bash
docker compose up -d # créer / démarrer
docker compose ps
docker compose logs -f api
docker compose exec api sh
docker compose down # stop + remove containers/réseau
docker compose down -v # + volumes nommés du projet (destructif)
docker compose build --no-cache
```
## Bonnes pratiques
1. **Healthcheck + `depends_on.condition`** plutôt que `depends_on` simple (ordre ≠ prêt).
2. **`.env`** à côté du compose pour les substitutions `${VAR}` — ne pas committer les secrets.
3. **Bind mounts** pour le hot-reload en dev ; volumes nommés pour les data stores.
4. Un service = une responsabilité ; images taguées explicitement.
5. Sécurité locale : pas de ports DB exposés sur `0.0.0.0` sans besoin ; mots de passe de démo uniquement en local.
## Debug Compose
1. `docker compose ps` / `logs` du service qui échoue.
2. `docker compose config` — valider le YAML fusionné.
3. Vérifier le DNS : depuis `api`, l’hôte s’appelle `db`, pas `localhost`.
4. Rebuild si le Dockerfile a changé : `docker compose up -d --build`.
## Attribution
Contenu pédagogique condensé avec autorisation du créateur — Yunt Academy.
Cours : https://academy.yunt.fr/dashboard/cours/cmta1lr1j000404l1qfs3kl25Colle ce Markdown dans ton agent ou utilise les boutons ci-dessus pour l’écrire dans ton projet.
Ce que fait yunt-docker-compose
Plusieurs conteneurs liés (app + DB + cache…)
Remplacer une longue série de `docker run`
Partager un environnement reproductible (`compose.yaml`)
Diagnostiquer un projet Compose qui ne démarre pas
Comment utiliser yunt-docker-compose
1
Copie le prompt
Un clic copie le prompt packagé (ou l'envoie à ton agent).
2
L'agent installe le skill
Il ajoute le SKILL.md et ses ressources à ton projet.
3
Activation automatique
Le skill s'active dès que le contexte correspond.
Déclencheurs pour yunt-docker-compose
Dis simplement à ton agent quelque chose comme :
Applique le skill yunt-docker-compose à cette tâche
Utilise yunt-docker-compose pour améliorer cette implémentation
Passe en revue ce sujet avec yunt-docker-compose
Skills liés à yunt-docker-compose
add cli command dotnet dotnet
Add or change a dotnet CLI command, subcommand, or option across the relevant CLI projects. USE FOR: adding or changing a dotnet CLI command/subcommand, adding a new Option<T> or Argument<T>, registering a subcommand in the command tree, changing an option's help description or a command's runtime message, wiring a command parser, or updating --help output.add cli command dotnet sdk
Add or change a dotnet CLI command, subcommand, or option across the relevant CLI projects. USE FOR: adding or changing a dotnet CLI command/subcommand, adding a new Option<T> or Argument<T>, registering a subcommand in the command tree, changing an option's help description or a command's runtime message, wiring a command parser, or updating --help output.add dotnet aot command dotnet dotnet
Add, enable, or review a dotnet CLI command or feature in the Native AOT CLI (src/Cli/dotnet-aot) and prove its compatibility. USE FOR: migrating a command or option to AOT, reviewing an AOT migration PR, defining conservative eligibility and managed fallback, changing AotSourceFiles.props or AotDependencies.props, validating AOT/managed parity, NativeAOT-publishing tests, checking binary-size impact, or using the dn harness and separated SDK layout. DO NOT USE FOR: resolving IL trim/AOT analyzer warnings alone (use dotnet-aot-compat), running dotnet.Tests incrementally (use incremental-test), or pure managed CLI work.