From b24bd96917f95e3bf18c3c2751ba5c06494c395a Mon Sep 17 00:00:00 2001 From: duffyduck Date: Tue, 9 Jun 2026 12:41:31 +0200 Subject: [PATCH] GC: --delete-untagged entfernen (zerstoerte Multi-Arch-Images) 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) --- auth-app/app.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/auth-app/app.py b/auth-app/app.py index c3e48e3..c166a41 100644 --- a/auth-app/app.py +++ b/auth-app/app.py @@ -534,9 +534,13 @@ def garbage_collect(): # Entfernt Blobs/Layer, die von keinem Manifest mehr referenziert werden # (z. B. nach dem Loeschen von Tags). Nutzt die registry-Binary direkt auf # dem gemounteten Speicher - kein Docker-Socket noetig. + # + # WICHTIG: KEIN --delete-untagged! Dieses Flag loescht bei Multi-Arch-Images + # die per-Architektur-Manifeste (die nur ueber die Manifest-Liste referenziert + # sind) und macht die Images damit unbrauchbar ("manifest unknown" beim Pull). try: result = subprocess.run( - ["registry", "garbage-collect", GC_CONFIG, "--delete-untagged"], + ["registry", "garbage-collect", GC_CONFIG], capture_output=True, text=True, timeout=600,