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) <noreply@anthropic.com>
This commit is contained in:
+5
-1
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user