Zum Inhalt springen
JelinaJelina DocumentationTechnische Dokumentation
Zur Website

Containerorchestrierung (Compose)

Besteht eine Anwendung aus mehreren Diensten, etwa einem Geschäftsdienst, einer Datenbank und einer Nachrichtenwarteschlange, lassen sich ihre Definitionen, Abhängigkeiten und Ausführungsweisen zentral in einer Orchestrierungsdatei deklarieren. Die Orchestrierung wird zentral vom Geräteagenten ausgeführt: Sie konfigurieren das Release, und das Gerät übernimmt die Bereitstellung automatisch. Manuelle Eingriffe am Gerät sind nicht erforderlich.

Orchestrierung im Release deklarieren (services + programs)
│
▼
Geräteagent synchronisiert Sollzustand ──▶ Images / Anwendungspakete abrufen ──▶ Dienste erstellen und starten ──▶ Laufend überwachen
│ │
│ ▼
└────────────────────────────── Versionsupdate / Rollback ◀────── Automatischer Neustart bei Fehlern
  • Der Geräteagent verarbeitet die Startreihenfolge und Abhängigkeiten mehrerer Dienste anhand der Orchestrierungsdefinition;
  • Unerwartet beendete Dienste werden automatisch neu gestartet und nach einem Geräteneustart automatisch wiederhergestellt;
  • Versionsupdates und Rollbacks werden über Releases verwaltet und vom Geräteagenten automatisch ausgeführt.

Nachfolgend sehen Sie eine Orchestrierungskonfiguration innerhalb eines Releases. Eine vollständige Feldbeschreibung finden Sie unter docker-compose-Kompatibilität und Erweiterungen:

version: "2.4"
services:
app:
image: myapp:1.0.0
restart: always
ports:
- "8080:80"
depends_on:
- db
db:
image: postgres:16
volumes:
- dbdata:/var/lib/postgresql/data
programs:
collector:
command: collector --config /data/collector.conf
restart: on-failure
volumes:
dbdata:

Die Orchestrierungskonfiguration wird beim Erstellen eines Releases eingegeben. Sie können sie im Editor bearbeiten oder eine Orchestrierungsdatei hochladen. Anwendungspakete, also Container-Images oder native Anwendungspakete, werden in den Release-Details hochgeladen. Weitere Informationen finden Sie in den folgenden Anleitungen:

  • Die Daten-Volumes der Orchestrierung sind vom Containerlebenszyklus unabhängig. Das Neuerstellen oder Aktualisieren eines Containers hat keine Auswirkungen auf die Daten;
  • Es empfiehlt sich, wichtige Daten zusätzlich in die Datenpartition des Geräts einzubinden.
  • Die Orchestrierung basiert auf der Spezifikation 2.x; gängige Orchestrierungsdateien können direkt verwendet werden;
  • In 3.x neu eingeführte Felder werden nicht unterstützt;
  • Vollständige Angaben zu Feldern und Kompatibilität finden Sie unter docker-compose-Kompatibilität und Erweiterungen.