Skip to content

mw stack up startet Container bei Image-Update nicht neu, anschließendes mw container restart schlägt mit 412 fehl #1827

@DrWh0286

Description

@DrWh0286

Beschreibung:
Beim Deployment eines neuen Image-Tags via mw stack up meldet der Stack Erfolg, aber die Container werden nicht neu gestartet — der alte Code bleibt aktiv. Ein anschließendes mw container restart schlägt mit einem 412-Fehler fehl.

Umgebung:

  • @mittwald/cli Version: 1.15.x
  • Deployment via GitLab CI

Schritte zur Reproduktion:

  1. Neues Docker-Image mit neuem Tag bauen (z.B. phpfpm-staging-abc1234)
  2. Deployment via mw stack up -c docker-compose.yml -s <stack-id> --env-file .env
  3. Direkt danach mw container restart <container-id> --project-id <project-id> aufrufen

Beobachtetes Verhalten:
Schritt 2 gibt zurück:
Deployment successful. No services were restarted. No services were deleted.
Schritt 3 schlägt fehl mit:

Response     412 Precondition Failed
Message      cannot start service <id>, it is already starting

Auch mit einem sleep 5 zwischen Schritt 2 und 3 bleibt der 412-Fehler bestehen.

Erwartetes Verhalten:
Entweder:

  • mw stack up sollte betroffene Container neu starten, wenn sich der Image-Tag ändert,

oder

  • mw container restart sollte nach Abschluss von mw stack up erfolgreich ausführbar sein

Auswirkung:
Nach einem Deployment mit neuem Image-Tag laufen die Container weiterhin mit dem alten Image. Der neue Code wird nicht übernommen, weil der OPcache von PHP-FPM den alten Bytecode im Speicher hält. Ein Container-Neustart ist der einfachste und zuverlässigste Weg, den OPcache zu leeren und das neue Image zu aktivieren. Dies lässt sich aktuell über die CLI nicht zuverlässig automatisieren.

Workaround:
Ein manueller Neustart über das mStudio funktioniert, macht aber automatisierte CI/CD-Deployments zunichte.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions