Zum Inhalt springen

Container Management

Die Container-Management-Seite zeigt alle Docker-Container einer Environment in Echtzeit. Sie zeigt Health-Status, Stack-Zugehörigkeit und Port-Mappings — und ermöglicht es, Container direkt zu starten, zu stoppen oder zu entfernen sowie ihre Logs live zu streamen.

FunktionBeschreibung
Drei AnsichtsmodiListe, Stack-Grupierung, Produkt-Gruppierung
Health-StatusBasiert auf RSGO-Health-Monitoring (nicht Docker HEALTHCHECK)
Container-AktionenStart, Stop, Entfernen (für nicht verwaltete Container)
Live-LogsEchtzeit-Log-Streaming mit Auto-Scroll
Orphaned StacksErkennung und Reparatur von verwaisten Stacks

Die Standardansicht zeigt alle Container in einer flachen Tabelle.

Container-Management Listenansicht

Spalten in der Listenansicht:

SpalteInhalt
Container NameName des Containers
StackZugehöriger Stack-Name (mit „Orphaned”-Badge falls kein Deployment-Eintrag)
ProductProduktname (falls in einem Product Deployment)
ImageDocker-Image-Referenz
StatusHealth-Status-Badge (healthy, unhealthy, starting, none)
PortPrimäres Port-Mapping (öffentlich:intern)
ActionsStart/Stop, Logs, Entfernen

Gruppiert Container nach Docker-Stack-Labels. Ideal um zu sehen, welche Container zu welchem Stack gehören.

Container-Management Stack-Ansicht

Jede Stack-Gruppe zeigt:

  • Stack-Name als Header mit der Anzahl laufender Container
  • „Orphaned”-Badge falls kein Deployment-Datensatz in der Datenbank existiert
  • Für Orphaned Stacks: Buttons Repair (Deployment-Eintrag anlegen) und Remove All

Gruppiert Container nach Products und deren Stacks — ideal für eine strukturierte Übersicht über alle deployten Products.

Container-Management Produkt-Ansicht

Die Hierarchie ist: Product → Stack → Container. Container ohne Produkt-Zuordnung erscheinen im Abschnitt „Unmanaged”.


ReadyStackGo verwendet eigenes HTTP-Health-Monitoring statt des nativen Docker HEALTHCHECK. Das verhindert falsche „unhealthy”-Meldungen wenn diagnostische Tools (curl, wget) im Container-Image nicht verfügbar sind.

StatusFarbeBedeutung
healthygrünContainer läuft und besteht alle Health-Checks
unhealthyrotHealth-Checks schlagen fehl oder Container ist gestoppt
startinggelbContainer startet gerade
nonegrauKein Health-Check konfiguriert

Für Container, die von keinem Stack-Deployment überwacht werden, gilt folgende Fallback-Logik:

  • state = runninghealthy
  • state = restarting / pauseddegraded
  • state = exited / deadunhealthy

Über die Action-Buttons kann ein Container direkt gestartet oder gestoppt werden. Während der Aktion wird ein Spinner angezeigt und der Button ist deaktiviert.

Der Entfernen-Button (Papierkorb-Icon) fragt nach einer Bestätigung bevor der Container gelöscht wird. Laufende Container werden forciert entfernt.


Ein Klick auf das Log-Icon öffnet die Log-Ansicht für den gewählten Container.

Container Logs in Echtzeit

Features der Log-Ansicht:

  • Live-Streaming via WebSocket — Logs erscheinen in Echtzeit
  • Tail-Auswahl — 50, 100, 200 oder 500 Zeilen historische Logs laden
  • Auto-Scroll — folgt automatisch neuen Log-Zeilen; deaktiviert sich beim manuellen Scrollen
  • Scroll-to-Bottom-Button — erscheint wenn nach oben gescrollt wurde
  • Connection-Indicator — zeigt ob die WebSocket-Verbindung aktiv ist
  • Stream-Ende-Indikator — erscheint wenn der Container stoppt

Ein Stack gilt als „orphaned” (verwaist) wenn Docker-Container mit dem Label rsgo.stack=<name> existieren, aber kein entsprechender Deployment-Datensatz in der Datenbank vorhanden ist. Das kann nach manuellen Docker-Operationen oder nach einem Datenverlust auftreten.

Für Orphaned Stacks stehen zwei Aktionen zur Verfügung:

AktionBeschreibung
RepairLegt einen neuen Deployment-Datensatz an — Container werden ab sofort durch ReadyStackGo verwaltet
Remove AllEntfernt alle Container des verwaisten Stacks

Mit Repair All können alle Orphaned Stacks der Environment auf einmal repariert werden.


MethodeEndpunktBeschreibungPermission
GET/api/containers?environment={envId}Alle Container auflistenDeployments.Read
GET/api/containers/context?environment={envId}Stack/Produkt-KontextDeployments.Read
POST/api/containers/{id}/start?environment={envId}Container startenDeployments.Update
POST/api/containers/{id}/stop?environment={envId}Container stoppenDeployments.Update
DELETE/api/containers/{id}?environment={envId}&force={bool}Container entfernenDeployments.Update
GET/api/containers/{id}/logs?environment={envId}&tail={n}Log-StreamDeployments.Read
POST/api/containers/orphaned-stacks/{stackName}/repair?environment={envId}Orphaned Stack reparierenDeployments.Update
DELETE/api/containers/orphaned-stacks/{stackName}?environment={envId}Orphaned Stack entfernenDeployments.Update
POST/api/containers/repair-all-orphaned?environment={envId}Alle Orphaned Stacks reparierenDeployments.Update

Authentifizierung: JWT Bearer Token oder API Key.


SituationVerhalten
API nicht erreichbarRote Fehlermeldung oben auf der Seite
Container nicht gefunden404-Antwort, Fehlermeldung in der UI
Start/Stop schlägt fehlFehlermeldung in der Container-Zeile
WebSocket-Verbindung unterbrochenReconnect-Indikator in der Logs-Ansicht