feat: establish secure update foundation
Container-Image veröffentlichen / container (push) v1.4.0 wurde manuell veröffentlicht und verifiziert
Container-Image veröffentlichen / container (push) v1.4.0 wurde manuell veröffentlicht und verifiziert
This commit is contained in:
1 parent
f02ec9977c
commit
bb60c06c0e
28 files changed
+1403
-280
No files matched your search
@@ -1,6 +1,6 @@
|
||||
# Domain Control aktualisieren
|
||||
|
||||
Die aktuelle Compose-Version ist `v1.3.0`. Datenbank, Einstellungen und
|
||||
Die aktuelle Compose-Version ist `v1.4.0`. Datenbank, Einstellungen und
|
||||
verschlüsselte API-Zugänge liegen in benannten Docker-Volumes und bleiben bei
|
||||
den folgenden Verfahren erhalten.
|
||||
|
||||
@@ -15,22 +15,35 @@ den folgenden Verfahren erhalten.
|
||||
Container wiederherzustellen.
|
||||
|
||||
Ein nicht erreichbarer Git- oder Registry-Server unterbricht den laufenden
|
||||
DynDNS-Dienst nicht.
|
||||
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.
|
||||
|
||||
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:
|
||||
|
||||
```yaml
|
||||
x-domain-control-image: &domain-control-image
|
||||
image: git.j-mahler.de/admin/domain-control-webinterface-prod:v1.3.0
|
||||
services:
|
||||
dyndns:
|
||||
image: &image git.j-mahler.de/admin/domain-control-webinterface-prod:v1.4.0
|
||||
update-agent:
|
||||
image: *image
|
||||
```
|
||||
|
||||
Danach im Ordner der Compose-Datei ausführen:
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
docker compose up -d --force-recreate
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
@@ -39,6 +52,11 @@ 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:
|
||||
|
||||
```bash
|
||||
@@ -50,7 +68,7 @@ Die erwartete Antwort lautet `ok`.
|
||||
## Portainer oder Dockge
|
||||
|
||||
1. Den bestehenden Stack bearbeiten.
|
||||
2. Nur den Tag der zentralen Image-Zeile auf `v1.3.0` setzen.
|
||||
2. Nur den Tag der zentralen Image-Zeile auf `v1.4.0` setzen.
|
||||
3. Den Stack mit vorherigem Image-Pull erneut bereitstellen.
|
||||
4. Kontrollieren, dass beide Container laufen und die Web-App `healthy` ist.
|
||||
|
||||
@@ -63,7 +81,7 @@ zuvor eingesetzte konkrete Version setzen und erneut ausführen:
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
docker compose up -d --force-recreate
|
||||
```
|
||||
|
||||
Vor größeren Versionssprüngen sollten die Volumes `dyndns-data` und
|
||||
|
||||
Reference in new issue
Block a user