Healthcheck et dépendances avec Docker
Healthcheck
Que ce soit dans un Dockerfile ou dans un docker-compose.yml, on peut utiliser healthcheck pour tester la bonne santé d’un service.
Un healthcheck consiste à passer régulièrement une commande, par exemple un curl qui est censé renvoyer un résultat.
Exemple de healthcheck avec Curl dans un docker-compose.yml :
service:
web:
...
healthcheck:
test: curl -f http://localhost
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
Exemple de healthcheck avec Curl dans un Dockerfile :
HEALTHCHECK --interval=30s --timeout=5s --retries=3 --start_period=30s CMD curl -f http://localhost/
Vérifier la santé d’un service
Un simple docker ps
ou docker-compose ps
vous indique déjà l’état de votre service :
blog nginx -g daemon off; Up (healthy) 80/tcp
Vous pouvez aussi interroger l’état d’un conteneur avec docker inspect …
docker inspect --format='{{json .State.Health}}' mon-service
… qui est censé vous renvoyer un statut “healthy” :
{"Status":"healthy", ...
Dépendances
Dans votre infrastructure Docker, vous pouvez définir des dépendances entre services, typiquement, l’appli Web ne peut pas démarrer sans base de données :
version: "3.7"
services:
web:
build: .
depends_on:
- db
db:
image: postgres
https://howchoo.com/g/zwjhogrkywe/how-to-add-a-health-check-to-your-docker-container