Restart-Policy fuer api und web, damit der Monitor nach Reboot/OOM zurueckkommt

Bisher hatte nur der Service sync ein "restart: unless-stopped". Nach einem
Reboot, einem OOM-Kill (512 MiB RAM in der Produktion) oder einem Docker-Neustart
kam deshalb nur sync von allein zurueck, waehrend api (8091) und web (8090)
liegen blieben. "docker compose ps" zeigte dann genau einen laufenden Container
und der Monitor war ueber die Firewall-Weiterleitung nicht mehr erreichbar - ein
Fehlerbild, das nach Firewall/Reverse Proxy aussieht, obwohl schlicht nichts auf
den Ports lauschte.

unless-stopped statt always, damit ein bewusstes "docker compose stop" bestehen
bleibt.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
fds2610-bot 2026-08-27 13:47:24 +02:00
parent ca1edc4a2c
commit dee0f5f304

View file

@ -8,6 +8,13 @@ services:
# Optional: echte status.txt aus der Produktion zum Testen einbinden, z.B.
# - ./status.txt:/status.txt:ro
working_dir: /app
# Ohne Restart-Policy bleiben api und web nach einem Reboot, einem OOM-Kill (die
# Produktionsmaschine hat 512 MiB RAM) oder einem Docker-Neustart einfach liegen,
# waehrend sync von allein zurueckkommt. "docker compose ps" zeigt dann genau einen
# laufenden Container und der Monitor antwortet gar nicht mehr - der Fehler sieht nach
# Firewall/Proxy aus, obwohl schlicht nichts auf 8090/8091 lauscht.
# unless-stopped statt always: ein bewusstes "docker compose stop" bleibt bestehen.
restart: unless-stopped
# Achtung: Eine Aenderung des Host-Ports muss in .env (MONITOR_API_BASE) nachgezogen
# werden - das Frontend laeuft im Browser und erreicht die API nicht ueber das
# Compose-Netzwerk, sondern ueber genau diesen Port.
@ -71,6 +78,9 @@ services:
# Nur zur lokalen Ansicht/Entwicklung, kein Build-Schritt noetig (Vanilla HTML/CSS/JS).
web:
image: nginx:alpine
# Siehe api: ohne Restart-Policy kommt das Frontend nach Reboot/OOM nicht von allein
# zurueck - und genau dieser Container bedient den nach aussen freigegebenen Port 8090.
restart: unless-stopped
volumes:
- ./html:/usr/share/nginx/html:ro
# Ueberlagert den Platzhalter html/API.md - der muss existieren, weil in