Cet article décrit comment est géré la commande healthcheck
Qu’est ce qu’est l’instruction HEALTHCHECK
?
Cette instruction indique à Docker comment vérifier si votre container fonctionne toujours correctement tout au long de son utilisation.
Cette instruction est déclarée dans le fichier Dockerfile
, lors de la création de l’image Docker.
Comment cette instruction est intégrée pour Voozanoo4 ?
Toutes les images Docker construites à partir de l’image Voo4Skeleton contiennent une instruction HEALTHCHECK
qui va exécuter le script healthcheck
depuis le container. Ce script va :
- lancer une commande
CURL
pour s’assurer que le serveur web répond. - lancer une série de test standard déclarées dans le noyau Voozanoo4.
- lancer une série de test optionnels déclarées dans l’application.
unhealthy
est ajouté aux informations du container. Sur nos serveurs, ce status est observé par des sondes pour déclencher des alertes en cas de besoin.Voo4Skeleton/Dockerfile#L83-L84
HEALTHCHECK --interval=5m --timeout=10s \
CMD healthcheck || exit 1
Cette instruction est surchargeable depuis un Dockerfile si la commande ne correspond pas au besoin. Pour cela, il faut déclarer de nouveau l’instruction HEALTHCHECK
.
Tests intégrés au noyau Voozanoo4
Le script healthcheck
lance cette commande :
fwk-docker-toolkit/scripts/healthcheck/check_voo4.sh#L7
php /var/www/app/resources/cron/voo4_cli.php mtd=healthcheck
C’est un script PHP CLI, basé sur le ScriptPlayer Voo4, dont les tests sont détaillés ici:
Voozanoo4/src/resources/xml_resources/healthcheck/voozanoo4-tests.xml
Tests spécifiques d’une application Voozanoo4
Le script healthcheck
lance cette commande :
fwk-docker-toolkit/scripts/healthcheck/check_voo4.sh#L9
php /var/www/app/resources/cron/voo4_cli.php mtd=healthcheck app=true
C’est un script PHP CLI, basé sur le ScriptPlayer Voo4, dont le contenu des tests sont détaillés dans un fichier optionnel (l’emplacement du fichier est spécifié ci-dessous) de l’application. Si celui-ci est absent, le script est ignoré et un message est communiqué par le biais du script healthcheck
.
Pour que le fichier soit reconnu, il faut que celui soit à cet emplacement exact dans le code de l’application :
resources/xml/healthcheck/voozanoo4-tests.xml
.
Pour s’assurer que le fichier est correctement pris en compte, on peut lancer le script healthcheck
depuis l’intérieur du container. Si le fichier est manquant, cela nous donne ce résultat :