Docker Compose en pratique
Au-delà des bases, Docker Compose offre des fonctionnalités pour les environnements de développement et de production.
Overrides et environnements multiples
# Fichiers par défaut chargés automatiquement
compose.yml # configuration de base
compose.override.yml # surcharges développement (chargé automatiquement)
# Fichiers explicites pour d'autres environnements
docker compose -f compose.yml -f compose.prod.yml up -d
# compose.yml (base commune)
services:
web:
image: mon-app:${APP_VERSION:-latest}
environment:
- LOG_LEVEL=info
# compose.override.yml (développement, chargé automatiquement)
services:
web:
build: . # construire localement en dev
volumes:
- .:/app # bind mount pour hot reload
environment:
- LOG_LEVEL=debug
ports:
- "8000:8000"
# compose.prod.yml (production)
services:
web:
restart: always
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
Scaling et ressources
# Lancer plusieurs instances d'un service (sans ports fixes)
docker compose up -d --scale worker=3
# Voir l'état avec les replicas
docker compose ps