Healthchecks

Un healthcheck est une commande que Docker exécute régulièrement dans le conteneur pour savoir si l'application fonctionne vraiment. L'état du conteneur devient starting, healthy ou unhealthy.

Comment ça marche

HEALTHCHECK dans un Dockerfile ou healthcheck: dans Compose fixe le test, son intervalle, son délai, ses essais et sa période de démarrage. Le test s'exécute dans le conteneur, donc l'outil qu'il appelle (curl, wget, pg_isready) doit exister dans l'image. Dans Compose, depends_on avec condition: service_healthy l'attend.

Ce qui casse

Docker seul ne redémarre pas un conteneur unhealthy : l'état informe, et ce sont des orchestrateurs comme Swarm qui agissent. Un test qui appelle un outil absent marque une application qui marche comme unhealthy, et un test plus lent que son délai échoue à chaque fois.

Dans compose.yaml

services:
  db:
    image: postgres:16
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 3s
      retries: 5
      start_period: 10s

Regarde-le casser, puis répare-le

Écris le Dockerfile ou le fichier compose, tape les commandes docker, et regarde un serveur simulé les exécuter à travers redémarrages, mises à jour et trafic. Gratuit pour commencer.