90 lines
3.5 KiB
Markdown
90 lines
3.5 KiB
Markdown
# Automatischer Unraid-Docker-Updateablauf
|
||
|
||
Stand: 24. August 2026
|
||
|
||
## Ziel
|
||
|
||
Ein ausdrücklich formulierter Auftrag wie „prüfe die Docker-Updates auf Unraid,
|
||
führe bestätigte Updates aus und kontrolliere das Ergebnis“ muss in Open WebUI
|
||
ohne manuelles Aktivieren von Werkzeugen vollständig ablaufen.
|
||
|
||
## Automatische Werkzeugwahl
|
||
|
||
Der `MikeAI Auto Tool Selector` unterscheidet zwischen Lesen und Ändern:
|
||
|
||
- reine Status- oder Updatefragen erhalten nur `mua-readonly-local`;
|
||
- eine in der aktuellen Nachricht ausdrücklich verlangte Unraid-Änderung erhält
|
||
`mua-readonly-local` und `mua` gemeinsam;
|
||
- Formulierungen wie „nur prüfen“ oder „keine Änderungen“ unterdrücken den
|
||
Verwaltungszugang;
|
||
- die bereitgestellten Verbindungen sind keine allgemeine Freigabe. Der Auftrag
|
||
muss die konkrete Änderung selbst enthalten.
|
||
|
||
Der vorgesehene Ablauf lautet immer:
|
||
|
||
1. Zustand und Kandidaten read-only erfassen.
|
||
2. Die engste gebündelte Änderung ausführen.
|
||
3. Das Ergebnis read-only oder durch die gebündelte technische Verifikation
|
||
kontrollieren.
|
||
|
||
## Verbindliches Batch-Werkzeug
|
||
|
||
MUA r019 stellt `unraid_docker_update_verified_batch` bereit. Das Werkzeug
|
||
akzeptiert 1 bis 25 exakte, mit `|` getrennte Containernamen.
|
||
|
||
Für jeden Container liest es zunächst Container-ID, Image-ID und Laufzustand.
|
||
Danach zieht es das im Unraid-Benutzertemplate konfigurierte Image und
|
||
vergleicht die unveränderliche lokale Image-ID. Bereits aktuelle Container
|
||
werden vollständig übersprungen – auch wenn Unraids Statuscache noch ein Update
|
||
meldet. Nur bei tatsächlich geänderter Image-ID wird neu erstellt. Laufend
|
||
bleibt laufend, gestoppt bleibt gestoppt.
|
||
|
||
Die kompakte Nachkontrolle enthält Container- und Image-ID-Änderung,
|
||
Endzustand, RestartCount und Healthcheck-Status. Templates, Ports, Volumes und
|
||
Netzwerke werden nicht verändert. Eine vorhandene Freigabe des bisherigen
|
||
Einzelwerkzeugs `unraid_docker_update` aktiviert nach dem Upgrade automatisch
|
||
auch die sicherere Batch-Variante.
|
||
|
||
## Idempotenz
|
||
|
||
Der Cache `/var/lib/docker/unraid-update-status.json` ist nur ein
|
||
Kandidatenhinweis. Er darf nie allein eine Neuerstellung auslösen. Autoritativ
|
||
ist der Image-ID-Vergleich nach dem Pull.
|
||
|
||
Ein wiederholter Lauf muss bei einem aktuellen Image folgendes melden:
|
||
|
||
```text
|
||
result: already-current
|
||
recreated: false
|
||
container_id_changed: false
|
||
image_id_changed: false
|
||
```
|
||
|
||
## Produktiver Regressionstest vom 24. August 2026
|
||
|
||
Ein neuer Open-WebUI-Chat erhielt ohne manuelle Werkzeugauswahl den Auftrag,
|
||
Unraid-Docker-Updates zu prüfen, bestätigt auszuführen und nachzukontrollieren.
|
||
|
||
- automatisch bereitgestellt: MUA read-only plus MUA-Verwaltung;
|
||
- zwei read-only-Aufrufe für Update-Status und Containerbestand;
|
||
- genau ein gebündelter Aufruf für fünf Kandidaten;
|
||
- alle fünf als `already-current` erkannt;
|
||
- null Neuerstellungen und null Container-/Image-ID-Änderungen;
|
||
- AirConnect blieb laufend; Virtual-DSM, AzuraCast, WindowsXP und Windows11
|
||
blieben gestoppt;
|
||
- `all_verified: true`.
|
||
|
||
Der vorherige Ablauf benötigte mehrere Benutzernachrichten und vier bis fünf
|
||
einzelne Update-Aufrufe. Dieser Pfad ist ersetzt.
|
||
|
||
## Recovery-Prüfung
|
||
|
||
1. MUA-Health muss r019 oder neuer melden.
|
||
2. Open WebUI muss den Auto Tool Selector 3.3.0 oder neuer enthalten.
|
||
3. „Gibt es Docker-Updates auf Unraid? Nur prüfen“ darf nur MUA read-only
|
||
bereitstellen.
|
||
4. Ein ausdrücklich schreibender synthetischer Auftrag muss beide MUA-Zugänge
|
||
bereitstellen und das Batch-Werkzeug wählen.
|
||
5. Ein Wiederholungstest mit aktuellem Image darf keine Neuerstellung auslösen.
|
||
|