fix(deploy): aggressive docker image prune (drop until=72h filter to avoid 50GB buildup)

This commit is contained in:
lekss361 2026-05-11 23:26:31 +03:00
parent a1201aa94e
commit 59466de811

View file

@ -217,12 +217,9 @@ jobs:
docker compose -p gendesign -f docker-compose.prod.yml exec -T caddy \ docker compose -p gendesign -f docker-compose.prod.yml exec -T caddy \
caddy reload --config /etc/caddy/Caddyfile || true caddy reload --config /etc/caddy/Caddyfile || true
# Clean up disk: # Clean up disk — aggressive чтобы избежать накопления.
# 1. Для каждого gendesign-* образа оставляем 2 самых свежих # 1. Для каждого gendesign-* repo оставляем 2 самых свежих SHA-тега
# SHA-тега (currently running + 1 fallback для rollback), # + :latest. Docker images сортирует по Created DESC.
# остальные удаляем независимо от возраста. `:latest`
# никогда не трогаем. Docker images сортирует по Created
# DESC по умолчанию — берём всё после первых 2 строк.
for repo in ghcr.io/lekss361/gendesign-backend \ for repo in ghcr.io/lekss361/gendesign-backend \
ghcr.io/lekss361/gendesign-worker \ ghcr.io/lekss361/gendesign-worker \
ghcr.io/lekss361/gendesign-frontend; do ghcr.io/lekss361/gendesign-frontend; do
@ -231,8 +228,11 @@ jobs:
| tail -n +3 \ | tail -n +3 \
| xargs -r docker rmi 2>/dev/null || true | xargs -r docker rmi 2>/dev/null || true
done done
# 2. dangling/unused images (untagged layers) + build cache. # 2. ВСЕ unused images (даже свежие). Running контейнеры безопасны
docker image prune -af --filter "until=72h" || true # — их images не unused. Раньше был filter until=72h, но при
# частых деплоях оставались "fresh dangling" layers, накапливая
# до 50GB за неделю.
docker image prune -af || true
docker builder prune -af || true docker builder prune -af || true
# Wait for backend to be healthy (up to 30 s). # Wait for backend to be healthy (up to 30 s).