Zum Inhalt springen

Product Redeploy

Ein Redeploy startet alle Stacks eines Produkts neu — mit einem frischen Image-Pull bei gleicher Version und Konfiguration. Die Split-View-Oberfläche zeigt den Fortschritt jedes Stacks in Echtzeit mit detaillierten Phase-, Service- und Init-Container-Informationen.

AnwendungsfallBeschreibung
Images aktualisiertContainer-Images wurden neu gebaut (z.B. :latest Tag), ohne Versionsänderung
Konfiguration neu anwendenUmgebungsvariablen oder Mounts sollen ohne Versionsupgrade neu eingelesen werden
Container-Fehler behebenContainer im Zustand Crashed oder Unhealthy nach einem Problem neu starten
Init-ContainerDatenbankmigrationen oder Setup-Container erneut ausführen

Öffnen Sie die Deployments-Seite und wählen Sie das gewünschte Produkt aus der Liste. Auf der Detailseite des Produkt-Deployments finden Sie den Redeploy-Button für Produkte im Status Running.

Deployments-Seite mit Produkt-Deployment


Nach dem Klick auf Redeploy erscheint der Bestätigungsbildschirm mit allen relevanten Informationen:

Redeploy-Bestätigung mit Produktdetails und Stack-Liste

Der Bestätigungsbildschirm zeigt:

  • Produktname und aktuelle Version
  • Ziel-Environment
  • Anzahl der Stacks
  • Liste aller Stacks die neu deployt werden, mit Anzahl der Services

Klicken Sie auf Redeploy All Stacks um das Redeploy zu starten, oder auf Cancel um zur Produktdetailseite zurückzukehren.


Sobald das Redeploy startet, wechselt die Ansicht zur Split-View-Fortschrittsanzeige:

Redeploy-Fortschritt mit Split-View und pro-Stack Details

Alle Stacks des Produkts werden als klickbare Einträge dargestellt. Jeder Eintrag zeigt:

  • Status-Indikator (Spinner oder Icon)
  • Stack-Name in der entsprechenden Farbe
  • Status-Badge mit aktuellem Zustand
Status-BadgeBedeutung
PendingWartet auf Ausführung
🟠 RemovingAlter Stack wird entfernt (docker compose down)
🔵 DeployingStack wird deployt (docker compose up)
🟢 RunningStack erfolgreich deployt
🔴 FailedStack-Redeploy fehlgeschlagen

Je nach Status des ausgewählten Stacks zeigt das Detail-Panel unterschiedliche Informationen:

StatusAnzeige im Detail-Panel
PendingWartenachricht
RemovingOrange Spinner mit “Removing existing stack before redeploy…”
DeployingDeploymentProgressPanel mit Phase, Fortschrittsbalken, Service-Zähler, Init-Container-Logs
RunningGrüner Erfolgshinweis + letzter bekannter Fortschritt
FailedRoter Fehlerhinweis + letzter bekannter Fortschritt

Am oberen Rand zeigt ein blauer Balken den Gesamtfortschritt: wieviele Stacks abgeschlossen sind von der Gesamtanzahl.


Nach erfolgreichem Redeploy erscheint der Erfolgsbildschirm mit einer Übersicht aller neu deployton Stacks:

Redeploy erfolgreich abgeschlossen

Von hier aus können Sie:

  • View Deployment — Zum Produkt-Deployment zurückkehren
  • All Deployments — Zur Deployments-Übersicht navigieren

Das rechte Detail-Panel beim Status Deploying zeigt die gleiche Fortschrittsanzeige wie beim initialen Deployment:

ElementBeschreibung
PhaseAktuelle Deployment-Phase (z.B. Pulling Images, Starting Services)
FortschrittsbalkenProzentualer Fortschritt der aktuellen Phase
Service-ZählerAnzahl verarbeiteter vs. gesamter Services
Aktueller ServiceName des gerade verarbeiteten Services
Init-Container-LogsTerminal-Ausgabe von Init-Containern (z.B. Datenbankmigrationen)

Alle Daten werden via SignalR in Echtzeit übertragen — ohne Seitenneuladen.


POST /api/environments/{environmentId}/product-deployments/{productDeploymentId}/redeploy
Content-Type: application/json
{
"sessionId": "optional-signalr-session-id"
}

Antwort:

{
"success": true,
"message": "Product redeployed successfully",
"stackResults": [
{
"stackName": "e2e-platform-backend",
"stackDisplayName": "Backend",
"serviceCount": 2,
"success": true
}
]
}
ParameterTypPflichtBeschreibung
sessionIdstringNeinSignalR-Session-ID für Echtzeit-Fortschrittsupdates

Die sessionId ist optional, aber für die Echtzeit-Fortschrittsanzeige in der UI empfohlen. Der Client muss sich vor dem API-Aufruf beim SignalR Deployment Hub mit dieser Session-ID registrieren.