registry garbage-collect --delete-untagged loescht bei Multi-Arch-Images
die per-Architektur-Manifeste, die nur ueber die Manifest-Liste (Index)
referenziert sind. Die Liste/der Tag bleibt, die Kind-Manifeste sind weg
-> beim Pull "manifest unknown".
Reproduziert: zwei Multi-Arch-Images, garbage-collect --delete-untagged
markiert die Kind-Manifeste als "eligible for deletion" und loescht sie;
danach schlaegt "skopeo copy --all" mit manifest unknown fehl. Ohne das
Flag bleiben die Images intakt.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ein Tag konnte im Katalog stehen, dessen Manifest aber nicht mehr
abrufbar war (Rest aus frueherem Loeschen/GC). Der Loeschen-Button
schlug dann mit "Tag nicht gefunden" fehl, der Eintrag liess sich nicht
entfernen.
delete_image entfernt jetzt zusaetzlich den Tag-Verweis direkt aus dem
Speicher: faellt der Manifest-Lookup ueber die API aus, wird der
verwaiste Tag trotzdem entfernt (und bei letztem Tag das Repository).
Pfad-Sicherheit in _safe_repo_path() gebuendelt.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Kennwort- und Access-Token-Feld haben jetzt ein Augen-Symbol, mit dem
die Eingabe sichtbar gemacht und kontrolliert werden kann. Umgesetzt
ueber ein wiederverwendbares pw_field-Macro (gilt fuer Einzel- und
Bulk-Formular).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Die Registry-API loescht nur Manifeste/Tags, das Repository-Verzeichnis
bleibt im Speicher und damit im Katalog ("keine Tags") stehen. Da der
Auth-Container den Registry-Speicher gemountet hat, wird das leere
Verzeichnis jetzt entfernt:
- beim Loeschen des letzten Tags direkt
- bei der Garbage Collection werden zusaetzlich alle Tag-losen
Repositories aufgeraeumt (fuer bereits vorhandene Reste)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Viele docker-compose-Dateien (z. B. Graylog) setzen Images per
${IMAGE:-default}. Bisher wurde alles mit "$" uebersprungen, sodass genau
diese Images nicht gefunden wurden. Jetzt werden ${VAR:-default} und
${VAR-default} mit ihrem Standardwert aufgeloest; nur Variablen ohne
Default (${VAR}, ${VAR:?...}) bleiben uebersprungen.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pull (einzeln/Bulk) und Garbage Collection laufen synchron und koennen
mehrere Minuten dauern. Ohne Rueckmeldung wirkte es, als ob nach dem
Klick "nichts passiert". Jetzt erscheint beim Abschicken ein Overlay mit
Spinner und Hinweistext, bis die Antwort da ist.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Tab "Images" um Verwaltungsfunktionen erweitert:
- Einzel-Pull: Image aus anderer Registry (z. B. Docker Hub) per skopeo
in die eigene Registry kopieren, optional mit Benutzername/Kennwort
oder Access Token fuer private Quell-Registries
- Bulk-Pull: alle image-Eintraege einer docker-compose (Textfeld oder
Datei-Upload) auf einmal holen; Variablen/eigene Registry werden ignoriert
- Digest-Dedup: bereits mit gleichem Digest vorhandene Images werden
uebersprungen (kopiert mit --all, damit Multi-Arch-Digests matchen)
- Loeschen: Muelltonne hinter jedem Tag mit Rueckfrage
- Garbage Collection: gibt belegten Speicher frei, laeuft per registry-Binary
(Multi-Stage-Build) direkt auf dem gemounteten Speicher, kein Docker-Socket
gunicorn: 1 Worker (gemeinsames Service-Passwort) + 8 Threads, Timeout 1800s
fuer lange Kopiervorgaenge.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>