Zum Inhalt springen

Docker Compose: Gesundheitschecks & Neustart-Automatisierung für die Produktivumgebung

1. Oktober 2024 durch
Docker Compose: Gesundheitschecks & Neustart-Automatisierung für die Produktivumgebung
Carsten Depping

So, ran an die Tasten, du brauchst eine effiziente Docker-Struktur für dein produktives Setup. Und wir haben genau das, was du brauchst. Unser superheldenhafter Ansatz: Docker Compose, Healthchecks und Neustart-Automatisierung. Klingt spannend? Dann schnall dich an, es geht los.

Zuerst mal: Docker Compose. Ein Tool, das die Konfiguration von Multi-Container-Docker-Anwendungen vereinfacht. Anstatt deine Services einzeln per Hand zu erstellen, kannst du sie in einer YAML-Datei definieren und mit einem einzigen Befehl starten: `docker-compose up`.

Hier mal ein Beispiel für einen einfachen Stack mit einer Web-App und einer Datenbank:

```yaml

version: '3'

services:

web:

build: .

ports:

- "5000:5000"

db:

image: postgres

volumes:

- ./data:/var/lib/postgresql/data

```

So weit, so gut. Aber wir wollen mehr. Denn nur wer seine Services im Blick hat, kann auch schnell reagieren. Und genau hier kommen die Healthchecks ins Spiel.

Healthchecks sind kleine Tests, die den Status deiner Services überprüfen. Docker Compose ermöglicht es dir, diese Checks direkt in deine YAML-Datei zu integrieren. Schau dir das mal an, wie einfach das geht:

```yaml

services:

web:

build: .

healthcheck:

test: ["CMD", "curl", "-f", "http://localhost"]

interval: 1m30s

timeout: 10s

retries: 3

```

Mit dieser Konfiguration überprüft Docker alle 1,5 Minuten, ob der Web-Service noch erreichbar ist. Falls nicht, versucht er es bis zu dreimal erneut, bevor der Service als "unhealthy" markiert wird.

Und was passiert, wenn ein Service mal ins Straucheln gerät? Keine Panik, wir haben die Lösung: Neustart-Automatisierung. Mit Docker Compose kannst du festlegen, dass ein Service automatisch neu gestartet wird, wenn er abbricht. Das funktioniert so:

```yaml

services:

web:

build: .

restart: always

```

Mit der Option `restart: always` sorgst du dafür, dass der Service immer wieder neu startet, egal was passiert.

So, jetzt bist du dran. Strukturiere deine Services, implementiere Healthchecks und automatisiere die Neustarts. Und dann, lieber Leser, dann bist du bereit für die Produktivumgebung. Denn wie sagt der IT-Superheld immer so schön: "Mit Docker Compose sind wir für alles gewappnet!"

Docker Compose: Gesundheitschecks & Neustart-Automatisierung für die Produktivumgebung
Carsten Depping 1. Oktober 2024
Diesen Beitrag teilen