An automated tool designed to periodically clean up unused Docker Buildx build cache (docker buildx prune) based on age constraints, with support for protecting specific build environments using labels.
By default, it targets the Buildx cache layer which often accumulates gigabytes of data during continuous integration (CI/CD) processes.
Configure the parameters inside your docker-compose.yml file:
AGE- the maximum allowed age for the build cache before deletion. Supports Go duration strings (e.g.,24h,1h30m).SLEEP- the interval between cleanup checks. Supports Go duration strings (e.g.,1h,30m).STICKY_LABEL- a key-value pair (key=value) used to protect specific custom Buildx builders from being purged.
If you want to protect a specific build node/builder from automated cleanup, assign it a matching label during creation:
docker buildx create --name my_protected_builder --driver-opt labels=persistent_build=trueThen, set STICKY_LABEL: persistent_build=true in your buildx_gc service configuration.
To start the automatic garbage collector, run:
docker compose up -dИнструмент для автоматической и периодической очистки неиспользуемого кэша сборки Docker Buildx (docker buildx prune) с возможностью защиты определенных окружений сборки с помощью меток.
Позволяет автоматически освобождать дисковое пространство от устаревшего кэша сборщика, который имеет свойство разрастаться в процессах непрерывной интеграции (CI/CD).
Параметры задаются через переменные окружения в файле docker-compose.yml:
AGE- максимальный жизненный цикл кэша сборки, после которого он подлежит удалению. Поддерживает формат Go duration (например,24h,1h30m).SLEEP- периодичность запуска проверки кэша. Поддерживает формат Go duration (например,1h,30m).STICKY_LABEL- параключ=значение, используемая для защиты кэша конкретных кастомных билдеров (buildx builders) от автоматического удаления.
Чтобы защитить определенный сборщик от автоматической очистки кэша, добавьте соответствующую метку при его создании:
docker buildx create --name my_protected_builder --driver-opt labels=persistent_build=trueПосле этого укажите переменную STICKY_LABEL: persistent_build=true в настройках сервиса buildx_gc.
Для развертывания сервиса очистки выполните команду:
docker compose up -dSee also: https://github.com/pdacity/docker_gc