3.9 KiB
Domain Control aktualisieren
Die aktuelle Compose-Version ist v1.5.0. Datenbank, Einstellungen und
verschlüsselte API-Zugänge liegen in benannten Docker-Volumes und bleiben bei
den folgenden Verfahren erhalten.
Direkt in der Weboberfläche
- Als Administrator anmelden und Update öffnen.
- Falls noch nicht geschehen, Gitea-Benutzername und das Passwort oder einen Token mit Lesezugriff auf Repository und Container-Paket hinterlegen.
- Nach Update suchen und anschließend Jetzt aktualisieren wählen.
- Warten, bis Image-Download, Containerwechsel und Healthcheck abgeschlossen sind. Bei einem Fehler versucht der Update-Agent automatisch, den vorherigen Container wiederherzustellen.
Ein nicht erreichbarer Git- oder Registry-Server unterbricht den laufenden DynDNS-Dienst nicht. Direkte Sprünge über mehrere Versionen sind möglich, wenn das Ziel-Image die laufende Version ausdrücklich unterstützt. Diese Kompatibilität wird nach dem Download und vor dem ersten Containerwechsel geprüft. Ein inkompatibles Release wird ohne Unterbrechung abgelehnt.
Nach einem Neustart des Docker-Hosts prüft die Web-App den Update-Agenten mit kurzem Abstand erneut. Der Update-Klick führt zusätzlich immer eine aktuelle Prüfung durch und wartet bei Bedarf darauf, dass der Container seinen Start-Healthcheck beendet. Ein separater manueller Neustart der Anwendung ist dafür nicht mehr erforderlich.
Über Container neu starten auf der Update-Seite lässt sich der vollständige
Anwendungscontainer außerdem gezielt neu starten. Datenbank, Secrets und
Einstellungen bleiben erhalten. Diese Funktion setzt die im mitgelieferten
Compose konfigurierte Richtlinie restart: unless-stopped voraus.
Die sichere Update-Basis beginnt mit v1.4.0. Installationen bis einschließlich
v1.3.0 werden einmalig wie unten beschrieben mit Compose aktualisiert. Danach
kann der Agent auch dann weitere kompatible Releases installieren, wenn seine
eigene Versionsnummer älter als die der Web-App ist. Erscheint Compose
aktualisieren, benötigt das Ziel einen neueren Agent-Vertrag; dann beide
Container wie unten beschrieben gemeinsam aktualisieren.
Mit Docker Compose
In compose.yml wird nur die zentrale, konkret gepinnte Image-Zeile geändert:
services:
dyndns:
image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.5.0
update-agent:
image: *image
Danach im Ordner der Compose-Datei ausführen:
docker compose pull
docker compose up -d --force-recreate
docker compose ps
Die Web-App und der Update-Agent verwenden durch den YAML-Anker dieselbe
Version. Für das Update ist kein docker compose down nötig. Insbesondere
niemals docker compose down -v verwenden, da -v die Daten- und
Secret-Volumes löschen würde.
Der Ein-Klick-Updater kann die auf dem Host liegende compose.yml nicht
verändern. Vor jedem späteren manuellen Compose-Lauf daher zuerst den gepinnten
Tag auf die gewünschte Version setzen, damit Compose keine ältere Version
wiederherstellt.
Der Healthcheck lässt sich anschließend direkt prüfen:
curl --fail http://127.0.0.1:9090/healthz
Die erwartete Antwort lautet ok.
Portainer oder Dockge
- Den bestehenden Stack bearbeiten.
- Nur den Tag der zentralen Image-Zeile auf
v1.5.0setzen. - Den Stack mit vorherigem Image-Pull erneut bereitstellen.
- Kontrollieren, dass beide Container laufen und die Web-App
healthyist.
Den Stack nicht mitsamt seinen Volumes löschen oder neu anlegen.
Rollback
Falls ein manuelles Rollback nötig ist, die zentrale Image-Zeile wieder auf die zuvor eingesetzte konkrete Version setzen und erneut ausführen:
docker compose pull
docker compose up -d --force-recreate
Vor größeren Versionssprüngen sollten die Volumes dyndns-data und
dyndns-secrets gemeinsam gesichert werden. Nur zusammen enthalten sie sowohl
die Datenbank als auch den zur Entschlüsselung benötigten Master-Key.