Dogu-Upgrades
Beginnend mit Version 0.14 der cesapp
können Dogus mit dem Befehl upgrade
aktualisiert werden. Um bei der Aktualisierung eines Dogu zu helfen, können die verfügbaren Upgrades mit list-upgrades
aufgelistet werden.
Verwendung
## Verfügbare Upgrades auflisten
cesapp list-upgrades
## Upgrade auf die neueste scm-Version
cesapp upgrade dogu scm
# Upgrade auf die Version 1.53-1 von scm
cesapp upgrade dogu scm 1.53-1
# Upgrade auf Version 1.52-1 und Ignorieren von Versionskonflikten
cesapp upgrade dogu scm 1.52-1 --force
Upgrade-Schritte
Während des Upgrade-Prozesses wird cesapp
die folgende Liste von Schritten ausführen:
- Alle Dogus stoppen, die von dem zu aktualisierenden abhängen
- Ausführen des Pre-Upgrade-Skripts, falls konfiguriert
- Entfernen des alten Containers
- Starten des neuen Containers
- Ausführen des Post-Upgrade-Skripts, falls konfiguriert
- Alle Dogus starten, die von dem zu aktualisierenden abhängen
Upgrade-Skripte
Die Upgrade-Skripte können z.B. in der dogu.json definiert werden:
{
"Name": "upgradable-dogu",
"Version": "0.2.0",
"DisplayName": "Upgradable Dogu",
"Image": "registry.cloudogu.com/sample/upgradable-dogu",
"ExposedCommands": [{
"Name": "pre-upgrade",
"Command": "/pre-upgrade.sh"
}, {
"Name": "post-upgrade",
"Command": "/post-upgrade.sh"
}]
}
Bitte beachten:
Die Konfiguration für die Upgrade-Skripte wird immer von der neuen Version des Dogus geladen. Das neue Dogu weiß, was für das Update benötigt wird.
Wenn in der neuen Version ein Pre-Upgrade-Skript definiert ist, dann wird es aus dem neuen Image in den alten Container extrahiert. Dadurch wird die Ausführung des Pre-Update-Skripts im alten Container ermöglicht.
Das Post-Upgrade wird ausgeführt, nachdem der neue Container gestartet wurde.
Dieses Verhalten ist nützlich für komplizierte Aufgaben wie Dump (Pre-Upgrade) und Restore (Post-Upgrade).