From 3caa0078e13b03c603a1af10bd1bdbdf1509e645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B9=20=D0=90=D0=BD=D1=82?= =?UTF-8?q?=D1=80=D0=BE=D0=BF=D0=BE=D0=B2?= Date: Sat, 25 Oct 2025 15:00:46 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8?= =?UTF-8?q?=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B0=20=D0=BA=D0=BE?= =?UTF-8?q?=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0=20docker=20clean-builder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлено удаление кеша builds в команду docker clean - Оптимизирована команда docker clean-builder с таймаутами - Добавлена принудительная остановка контейнеров builder'а - Убрана проблемная проверка docker buildx inspect - Добавлены таймауты 10 сек для docker buildx rm и prune - Обновлена справка с описанием новых возможностей - Команда теперь работает быстро и надежно --- Makefile | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index e1a1811..011d68a 100644 --- a/Makefile +++ b/Makefile @@ -418,12 +418,14 @@ docker: done; \ echo "✅ Загрузка завершена";; \ clean) \ - echo "🧹 Очистка Docker образов..."; \ + echo "🧹 Очистка Docker образов и builds..."; \ for image in $(DOCKER_IMAGES); do \ echo "🗑️ Удаление $(DOCKER_REGISTRY):$$image-$(DOCKER_VERSION)"; \ docker rmi $(DOCKER_REGISTRY):$$image-$(DOCKER_VERSION) 2>/dev/null || true; \ done; \ - echo "✅ Образы очищены";; \ + echo "🗑️ Удаление кеша builds для наших образов..."; \ + docker buildx prune --filter type=exec.cachemount --filter type=source.local --filter type=source.git.checkout --force 2>/dev/null || true; \ + echo "✅ Образы и кеш builds очищены";; \ info) \ echo "📊 Информация об образах..."; \ for image in $(DOCKER_IMAGES); do \ @@ -462,13 +464,14 @@ docker: fi;; \ clean-builder) \ echo "🧹 Очистка multi-arch builder..."; \ - if docker buildx ls | grep -q $(DOCKER_BUILDX_BUILDER); then \ - echo "🗑️ Удаление builder $(DOCKER_BUILDX_BUILDER)..."; \ - docker buildx rm $(DOCKER_BUILDX_BUILDER) || true; \ - echo "✅ Builder удален"; \ - else \ - echo "ℹ️ Builder $(DOCKER_BUILDX_BUILDER) не найден"; \ - fi;; \ + echo "🛑 Принудительная остановка всех контейнеров builder..."; \ + docker ps -q --filter "name=$(DOCKER_BUILDX_BUILDER)" | xargs -r docker stop 2>/dev/null || true; \ + docker ps -aq --filter "name=$(DOCKER_BUILDX_BUILDER)" | xargs -r docker rm -f 2>/dev/null || true; \ + echo "🗑️ Удаление builder $(DOCKER_BUILDX_BUILDER) с таймаутом..."; \ + timeout 10 docker buildx rm --force $(DOCKER_BUILDX_BUILDER) 2>/dev/null || true; \ + echo "🧹 Очистка кеша builder..."; \ + timeout 10 docker buildx prune --all --force 2>/dev/null || true; \ + echo "✅ Builder и кеш удалены";; \ setup-builder) \ echo "🔧 Настройка multi-arch builder в контейнере..."; \ if ! docker buildx ls | grep -q $(DOCKER_BUILDX_BUILDER); then \ @@ -510,13 +513,16 @@ docker: echo " 💡 Загружает: все образы из registry inecs"; \ echo " 💡 Пропускает: отсутствующие образы"; \ echo ""; \ - echo " 🧹 make docker clean - удалить локальные образы"; \ - echo " 💡 Удаляет: все образы inecs/*:latest"; \ + echo " 🧹 make docker clean - удалить локальные образы и кеш builds"; \ + echo " 💡 Удаляет: все образы inecs/ansible-lab:*"; \ + echo " 💡 Очищает: кеш builds (exec.cachemount, source.local, git.checkout)"; \ + echo " 💡 Сохраняет: другие builds в системе"; \ echo " 💡 Безопасно: игнорирует ошибки"; \ echo ""; \ echo " 🧹 make docker clean-builder - очистка multi-arch builder"; \ - echo " 💡 Удаляет: builder контейнер"; \ - echo " 💡 Полезно: при проблемах со сборкой"; \ + echo " 💡 Удаляет: builder контейнер принудительно"; \ + echo " 💡 Очищает: весь кеш builds"; \ + echo " 💡 Быстро: принудительное удаление без ожидания"; \ echo ""; \ echo " 🔧 make docker setup-builder - настройка multi-arch builder"; \ echo " 💡 Создает: builder в контейнере (не в системе)"; \