README: Deployment-Stolperstein sauber formuliert
Deploy App / deploy (push) Successful in 20s

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-09 19:40:31 +02:00
co-authored by Claude Opus 5
parent 7befe6b0c5
commit cb92d7e27b
+15 -8
View File
@@ -202,12 +202,19 @@ Annahmen stecken in `tools/authoring.mjs` und sind dort einzeln kommentiert:
## Stolperstein beim Deployment
Der erste Rollout lieferte trotz laufendem Container und korrekten Labels ein
404 von Traefik. Ursache war der HEALTHCHECK im Dockerfile: busybox-löst zuerst nach auf, nginx lauschte aber nur auf IPv4 –
der Check schlug dauerhaft fehl. **Traefik nimmt Container, die nicht
sind, gar nicht erst in die Routing-Tabelle auf**, deshalb entstand
kein Router und damit auch kein Zertifikat.
Der erste Rollout lieferte trotz laufendem Container und korrekten Traefik-Labels
ein 404 vom Proxy. Ursache war der HEALTHCHECK im Dockerfile: busybox-`wget`
löst `localhost` zuerst nach `::1` auf, nginx lauschte aber nur auf IPv4 – der
Check schlug dauerhaft fehl und der Container blieb auf `health: starting`.
Behoben durch im Healthcheck und ein zusätzliches
in der nginx-Konfiguration. Der Workflow wartet seither auf
, bevor er den Lauf als erfolgreich meldet.
**Traefik nimmt Container, die nicht `healthy` sind, gar nicht in die
Routing-Tabelle auf.** Deshalb entstand kein Router, kein Zertifikat und damit
ein 404 mit dem Traefik-Default-Zertifikat – ein Fehlerbild, das leicht nach
einem Proxy- oder DNS-Problem aussieht.
Behoben durch `http://127.0.0.1/` im Healthcheck und ein zusätzliches
`listen [::]:80;` in der nginx-Konfiguration. Der Deploy-Workflow wartet
seither auf `healthy` und prüft den Router, bevor er den Lauf abschliesst.
Merksatz für weitere AICDS-Apps: ein Container mit fehlschlagendem Healthcheck
wird von Traefik stillschweigend ignoriert.