docs(wiki): :master restored via re-push; digest-collision suspicion cleared
books закрыли named-tag предохранителем (62d812e: protectRe +master|latest). keep/drop digest-коллизия — снято: keep=1 у books-api это buildcache (group-by-digest через Map делает keep/drop взаимоисключающими). Восстановление снесённого named-тега = re-push локального образа с VDS (docker tag inspect-Image + push под books-ci), не rebuild → плоский single-platform манифест с .config (pullable, датируется). Применено к books-api + books-ops-mcp -> :master снова 200. Гоча: books-api вне CI-матрицы (embed-api-into-web) -> re-push единственный путь. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -58,7 +58,9 @@ Sub-manifest (и его слои) физически удалены, а **тег
|
||||
|
||||
**Побочка — урок:** у `books-api` и `books-ops-mcp` сам тег `master` указывал на **dangling**-индекс (образа не пересобирались ~3 нед, sub-манифесты вычищены прежним GC). Логика «dangling → drop безусловно» снесла и named-тег → `…/manifests/master` → **404**. Pull был сломан и до прогона (MANIFEST_UNKNOWN), но теперь тег исчез совсем. **Outage'а нет** (контейнеры books-api/bookva-api/books-ops-mcp крутятся с локальных образов), но любое **пересоздание/redeploy** упрётся в 404 до CI-rebuild.
|
||||
|
||||
**Вывод для GC-политики:** **не удалять named-теги (`master`/`latest`) даже dangling** — это deploy-указатель; лучше логировать «нужен rebuild». protectRe для registryGc стоит расширить с `^buildcache$` до `^buildcache$|^master$|^latest$`. Также проверить keep/drop на коллизию digest (у books-api `keep=1`, но в реестре не-buildcache не осталось — kept-образ, похоже, делил index-digest с dropped-dangling и ушёл вместе с ним по общему DELETE).
|
||||
**Вывод для GC-политики:** **не удалять named-теги (`master`/`latest`) даже dangling** — это deploy-указатель; лучше логировать «нужен rebuild». books закрыли предохранителем (`62d812e`: protectRe `^buildcache$` → `^buildcache$|^master$|^latest$`). Подозрение на keep/drop digest-коллизию — **снято**: `keep=1` у books-api это buildcache (protected, он и остался); группировка по digest через Map делает keep/drop взаимоисключающими, kept-манифест не удаляется.
|
||||
|
||||
**Восстановление снесённого named-тега — re-push локального образа** (не rebuild): контейнер крутится с локального образа на хосте → `docker tag $(docker inspect -f '{{.Image}}' <ctr>) registry/<repo>:master && docker push` (под books-ci с самого VDS, не из дома). Возвращает **плоский single-platform манифест с .config** (pullable, и будущий GC его датирует). Применено 2026-06-18 к books-api + books-ops-mcp → :master снова 200. **Гоча:** `books-api` вне CI-build-матрицы (вынесен под embed-api-into-web) — для него re-push единственный способ вернуть pullable master, rebuild'ом не выйдет.
|
||||
|
||||
## Правила для любого GC/cleanup над этим реестром
|
||||
|
||||
|
||||
Reference in New Issue
Block a user