infra/modules/docker-registry
Viktor Barzin dd461beb33 add registry blob integrity checker to self-heal corrupted cache
The cleanup-tags.sh + garbage-collect cycle can delete blob data while
leaving _layers/ link files intact. The registry then returns HTTP 200
with 0 bytes for those layers, causing "unexpected EOF" on image pulls.

fix-broken-blobs.sh walks all repositories, checks each layer link
against actual blob data, and removes orphaned links so the registry
re-fetches from upstream on next pull.

Schedule: daily at 2:30am (after tag cleanup) and Sunday 3:30am
(after garbage collection). First run found 2335/2556 (91%) of
layer links were orphaned.
2026-03-29 22:31:39 +03:00
..
cleanup-tags.sh [ci skip] Rebuild docker-registry with nginx serialization on all ports 2026-02-22 21:45:53 +00:00
config-private.yml add htpasswd auth to private docker registry + expose at registry.viktorbarzin.me 2026-03-22 22:10:10 +02:00
config-proxy.yaml.tpl harden pull-through cache: intercept errors, reduce lock timeout, add healthz 2026-03-23 11:33:06 +02:00
config.yaml harden pull-through cache: intercept errors, reduce lock timeout, add healthz 2026-03-23 11:33:06 +02:00
docker-compose.yml fix registry healthchecks: use 127.0.0.1 instead of localhost 2026-03-29 22:29:27 +03:00
fix-broken-blobs.sh add registry blob integrity checker to self-heal corrupted cache 2026-03-29 22:31:39 +03:00
nginx_registry.conf harden pull-through cache: intercept errors, reduce lock timeout, add healthz 2026-03-23 11:33:06 +02:00