Docker Compose a ete pense pour le dev local. L’utiliser en production est possible mais demande une approche differente.
Ce que Compose ne fait pas nativement
- Pas de rolling updates
- Pas de multi-host
- Pas de gestion des secrets robuste
Health checks et restart policies
services:
api:
image: myapp:latest
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
Securiser les secrets
services:
db:
image: postgres:16
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
secrets:
db_password:
file: ./secrets/db_password.txt
Limiter les ressources
services:
api:
deploy:
resources:
limits:
cpus: '1.0'
memory: 512M
Sans limites, un container peut consommer toute la memoire du serveur.
Notre formation Docker couvre les patterns de deploiement en production.