Ce guide explique comment utiliser le conteneur Docker de cloudflare/cloudflared:latest
avec un healthcheck fonctionnel via l’endpoint metrics & ready.
1. Pourquoi intégrer un healthcheck pour Cloudflare Tunnel ?
Par défaut, cloudflared
lance un serveur /metrics
Prometheus accessible (en container) sur 0.0.0.0:PORT
Cependant il n’y a pas de commande healthcheck
intégrée dans l’image officielle Docker.
L’endpoint /ready
permet de vérifier si le tunnel est prêt .
2. Exemple de configuration Docker Compose
# Cloudflare Tunnel Service
cloudflare-tunnel:
image: cloudflare/cloudflared:latest
container_name: logcentral-cloudflare-tunnel
restart: unless-stopped
environment:
- CLOUDFLARE_TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}
command: >
tunnel --metrics 127.0.0.1:60123 --no-autoupdate
run --token ${CLOUDFLARE_TUNNEL_TOKEN}
healthcheck:
test: ["CMD", "cloudflared", "tunnel", "--metrics", "127.0.0.1:60123", "ready"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
labels:
- "traefik.enable=false"
➡️ Explications :
--metrics 127.0.0.1:60123
force l’endpoint disponible sur l’ip localhost (info disponible ici)- La commande healthcheck utilise
cloudflared tunnel --metrics 127.0.0.1:60123 ready
pour interroger directement l’endpoint readiness. - Les paramètres
interval
,timeout
,retries
etstart_period
contrôlent l’attente et les tentatives de vérification.