Health Status
Der Healthcheck wird bei docker compose zur Prüfung von Abhängigkeiten eingesetzt. Es soll geprüft werden, ob ein bestimmter Dienst zur Verfügung steht.
Fall 1: Server ist abhängig von MySQL
Im folgenden Beispiel ist ein Dienst darauf angewiesen, dass die Datenbank hochgefahren ist.
services:
server:
image: your_server_image
depends_on:
db:
condition: service_healthy # Bedingung unter der der Dienst starten soll
db:
image: your_db_image
healthcheck:
test: ... # Command to check health.
interval: 5s # Interval between health checks.
timeout: 5s # Timeout for each health checking.
retries: 20 # Hou many times retries.
start_period: 10s # Estimated time to boot.
Beispiel für eine Testabfrage
db:
image: mysql:8.0.26
ports:
- 3316:3306
environment:
MYSQL_DATABASE: yourdb
MYSQL_ROOT_PASSWORD: pass
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-uroot", "-ppass"]
interval: 5s
timeout: 5s
retries: 20
Mit mysqladmindem MySQL-Server im DB-Container pingen. Dieser läuft lokal.
Das MySQL-Passwort ist das, welches unter environment mit MYSQL_ROOT_PASSWORD angegeben ist.
Fall 2: Server hängt von einem anderen Server ab
Wenn wir mehr als einen Server haben, hängen die Server möglicherweise von anderen ab. Für diesen Fall sollte Self-Ping die einfachste Lösung sein. Für den Server, auf dem der Container ausgeführt wird, localhostund 8080den Port im Container, curlsollte der Befehl zum Ping wie folgt aussehen.
image_detection:
image: your_image
ports:
- 8082:8080
healthcheck:
test: "curl -f localhost:8080"
interval: 5s
timeout: 5s
retries: 20
No comments to display
No comments to display