From 51409099fc77435542d57e23a1170bf69b7d602c Mon Sep 17 00:00:00 2001 From: Marc Mintel Date: Wed, 4 Feb 2026 18:43:12 +0100 Subject: [PATCH] feat: Increase registry pruning aggressiveness by reducing tag retention, adding version and buildcache tag deletion, and shortening Docker system prune duration. (includes chore: relax header-max-length) --- packages/husky-config/commitlint.js | 2 +- packages/infra/scripts/prune-registry.sh | 34 +++++++++++++++++------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/packages/husky-config/commitlint.js b/packages/husky-config/commitlint.js index ad78d5c..6fcf0f7 100644 --- a/packages/husky-config/commitlint.js +++ b/packages/husky-config/commitlint.js @@ -1,7 +1,7 @@ const config = { extends: ["@commitlint/config-conventional"], rules: { - "header-max-length": [2, "always", 150], + "header-max-length": [2, "always", 250], "subject-case": [0], "subject-full-stop": [0], }, diff --git a/packages/infra/scripts/prune-registry.sh b/packages/infra/scripts/prune-registry.sh index 35b9dc7..ecfb167 100644 --- a/packages/infra/scripts/prune-registry.sh +++ b/packages/infra/scripts/prune-registry.sh @@ -3,12 +3,11 @@ set -e # Configuration REGISTRY_DATA="/opt/infra/registry/data/docker/registry/v2" -KEEP_TAGS=5 +KEEP_TAGS=3 -echo "๐Ÿฅ Starting Registry & Docker Maintenance..." +echo "๐Ÿฅ Starting Aggressive Registry & Docker Maintenance..." # 1. Prune Registry Tags (Filesystem level) -# This identifies main-* tags and keeps only the latest N for repo_dir in "$REGISTRY_DATA/repositories/mintel/"*; do repo_name=$(basename "$repo_dir") tags_dir="$repo_dir/_manifests/tags" @@ -16,17 +15,35 @@ for repo_dir in "$REGISTRY_DATA/repositories/mintel/"*; do if [ -d "$tags_dir" ]; then echo "๐Ÿ” Processing repository: mintel/$repo_name" - # Get main-* tags sorted by modification time (newest first) + # Prune main-* tags + echo " ๐Ÿ“ฆ Pruning main tags..." main_tags=$(ls -dt "$tags_dir"/main-* 2>/dev/null || true) - count=0 for tag_path in $main_tags; do ((++count)) if [ $count -gt $KEEP_TAGS ]; then - echo " ๐Ÿ—‘๏ธ Deleting old tag: $(basename "$tag_path")" + echo " ๐Ÿ—‘๏ธ Deleting old main tag: $(basename "$tag_path")" rm -rf "$tag_path" fi done + + # Prune version tags (v* and rc*) + echo " ๐Ÿท๏ธ Pruning version tags..." + version_tags=$(ls -dt "$tags_dir"/v1* 2>/dev/null || true) + count=0 + for tag_path in $version_tags; do + ((++count)) + if [ $count -gt $KEEP_TAGS ]; then + echo " ๐Ÿ—‘๏ธ Deleting old version tag: $(basename "$tag_path")" + rm -rf "$tag_path" + fi + done + + # Always prune buildcache (as it rebuilds quickly) + if [ -d "$tags_dir/buildcache" ]; then + echo " ๐Ÿงน Deleting buildcache tag" + rm -rf "$tags_dir/buildcache" + fi fi done @@ -34,10 +51,9 @@ done echo "โ™ป๏ธ Running Registry Garbage Collection..." docker exec registry-registry-1 bin/registry garbage-collect /etc/docker/registry/config.yml -# 3. Prune Host Docker resources +# 3. Prune Host Docker resources (Shorter window: 24h) echo "๐Ÿงน Pruning Host Docker resources..." -# Separate prune commands because --filter and --volumes can be incompatible on some versions -docker system prune -af --filter "until=168h" +docker system prune -af --filter "until=24h" docker volume prune -f echo "โœ… Maintenance complete!"