Korrupte/verwaiste Repos sichtbar machen + Live-GC sicher
Zwei Probleme nach dem alten --delete-untagged-Schaden: 1) Repos mit Tags aber ohne _layers (verwaist) tauchen nicht im Registry-Katalog auf -> waren in der Web-Oberflaeche unsichtbar und nicht loeschbar. images() listet jetzt zusaetzlich direkt aus dem Dateisystem (scan_fs_repositories/repo_tags), Vereinigung mit dem Katalog. So sind auch korrupte Repos sichtbar und ueber den Loeschen-Button entfernbar. 2) Die GC laeuft als separater Prozess auf dem gemounteten Speicher. Der In-Memory-Blob-Cache der laufenden Registry hielt geloeschte Blobs faelschlich fuer vorhanden -> erneuter Pull legte keine _layers-Verknuepfung an (Image fehlte im Katalog). Cache via REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR="" deaktiviert -> Live-GC sicher. Verifiziert: korruptes Repo -> in Liste sichtbar -> Loeschen -> GC -> erneut pushen -> Katalog korrekt und docker pull erfolgreich, ohne Registry-Neustart. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,6 +34,12 @@ services:
|
||||
REGISTRY_AUTH_HTPASSWD_REALM: Docker Registry
|
||||
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
|
||||
REGISTRY_STORAGE_DELETE_ENABLED: "true"
|
||||
# Blob-Cache deaktivieren: Die Garbage Collection laeuft als separater
|
||||
# Prozess auf dem gemounteten Speicher. Mit aktivem In-Memory-Cache wuerde
|
||||
# die laufende Registry geloeschte Blobs faelschlich fuer vorhanden halten
|
||||
# und beim erneuten Pull keine Layer-Verknuepfung anlegen (Image fehlt dann
|
||||
# im Katalog / "manifest unknown"). Ohne Cache ist die Live-GC sicher.
|
||||
REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR: ""
|
||||
volumes:
|
||||
- ./data/registry:/var/lib/registry
|
||||
- ./data/htpasswd:/auth:ro
|
||||
|
||||
Reference in New Issue
Block a user