From dee0f5f304ea0d6169736ea6bdf1aa4ee4b5f879 Mon Sep 17 00:00:00 2001 From: fds2610-bot Date: Thu, 27 Aug 2026 13:47:24 +0200 Subject: [PATCH] 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 --- docker-compose.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index bc7a509..a461efa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -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