feat: Переименование docker-cmd в docker и добавление команды purge

- Переименована секция docker-cmd в docker:
  * Обновлены все команды: make docker [действие]
  * Обновлена справка в основной help
  * Обновлены примеры использования
  * Обновлен .PHONY

- Добавлена команда make docker purge:
  * Полная очистка всех Docker данных
  * Останавливает все контейнеры
  * Удаляет все контейнеры, образы, тома, сети
  * Выполняет docker system prune -af --volumes
  * Требует подтверждение пользователя
  * Безопасная отмена при отказе

- Улучшена справка:
  * Добавлено предупреждение для команды purge
  * Обновлены все описания команд
  * Добавлена команда purge в пустые цели
This commit is contained in:
Сергей Антропов
2025-10-25 11:34:36 +03:00
parent ee0e5b98a3
commit 646d1bbd00

View File

@@ -33,7 +33,7 @@ DOCKER_REGISTRY ?= inecs
DOCKER_VERSION ?= latest DOCKER_VERSION ?= latest
DOCKER_IMAGES := ansible-controller alt-linux astra-linux redos rhel centos alma rocky DOCKER_IMAGES := ansible-controller alt-linux astra-linux redos rhel centos alma rocky
.PHONY: role vault git docker-cmd presets controller help .PHONY: role vault git docker presets controller help
# ============================================================================= # =============================================================================
# КОМАНДЫ ДЛЯ РАБОТЫ С РОЛЯМИ # КОМАНДЫ ДЛЯ РАБОТЫ С РОЛЯМИ
@@ -353,7 +353,7 @@ git:
# ============================================================================= # =============================================================================
# КОМАНДЫ ДЛЯ РАБОТЫ С DOCKER # КОМАНДЫ ДЛЯ РАБОТЫ С DOCKER
# ============================================================================= # =============================================================================
docker-cmd: docker:
@case "$(word 2, $(MAKECMDGOALS))" in \ @case "$(word 2, $(MAKECMDGOALS))" in \
prepare) \ prepare) \
echo "🔧 Подготовка Docker образов для Docker Hub..."; \ echo "🔧 Подготовка Docker образов для Docker Hub..."; \
@@ -407,36 +407,63 @@ docker-cmd:
$(MAKE) docker build; \ $(MAKE) docker build; \
$(MAKE) docker push; \ $(MAKE) docker push; \
echo "✅ Все образы обновлены";; \ echo "✅ Все образы обновлены";; \
purge) \
echo "🧹 Полная очистка Docker..."; \
echo "⚠️ ВНИМАНИЕ: Это удалит ВСЕ Docker данные!"; \
echo ""; \
read -p "Продолжить? (y/N): " confirm; \
if [ "$$confirm" = "y" ] || [ "$$confirm" = "Y" ]; then \
echo "🛑 Остановка всех контейнеров..."; \
docker stop $$(docker ps -aq) 2>/dev/null || true; \
echo "🗑️ Удаление всех контейнеров..."; \
docker rm $$(docker ps -aq) 2>/dev/null || true; \
echo "🗑️ Удаление всех образов..."; \
docker rmi $$(docker images -aq) 2>/dev/null || true; \
echo "🗑️ Удаление всех томов..."; \
docker volume rm $$(docker volume ls -q) 2>/dev/null || true; \
echo "🗑️ Удаление всех сетей..."; \
docker network rm $$(docker network ls -q) 2>/dev/null || true; \
echo "🧹 Очистка системы..."; \
docker system prune -af --volumes; \
echo "✅ Docker полностью очищен"; \
else \
echo "❌ Очистка отменена"; \
fi;; \
*) \ *) \
echo "🎯 Доступные команды:"; \ echo "🎯 Доступные команды:"; \
echo ""; \ echo ""; \
echo " 🔧 make docker-cmd prepare - подготовка к работе с Docker Hub"; \ echo " 🔧 make docker prepare - подготовка к работе с Docker Hub"; \
echo " 💡 Показывает: registry, version, список образов"; \ echo " 💡 Показывает: registry, version, список образов"; \
echo " 💡 Рекомендует: docker login перед работой"; \ echo " 💡 Рекомендует: docker login перед работой"; \
echo ""; \ echo ""; \
echo " 🐳 make docker-cmd build - собрать все Docker образы"; \ echo " 🐳 make docker build - собрать все Docker образы"; \
echo " 💡 Собирает: ansible-controller, alt-linux, astra-linux, redos"; \ echo " 💡 Собирает: ansible-controller, alt-linux, astra-linux, redos"; \
echo " 💡 Собирает: rhel, centos, alma, rocky"; \ echo " 💡 Собирает: rhel, centos, alma, rocky"; \
echo " 💡 Тегирует: inecs/образ:latest"; \ echo " 💡 Тегирует: inecs/образ:latest"; \
echo ""; \ echo ""; \
echo " 📤 make docker-cmd push - отправить образы в Docker Hub"; \ echo " 📤 make docker push - отправить образы в Docker Hub"; \
echo " 💡 Требует: docker login"; \ echo " 💡 Требует: docker login"; \
echo " 💡 Отправляет: все образы в registry inecs"; \ echo " 💡 Отправляет: все образы в registry inecs"; \
echo ""; \ echo ""; \
echo " 📥 make docker-cmd pull - загрузить образы из Docker Hub"; \ echo " 📥 make docker pull - загрузить образы из Docker Hub"; \
echo " 💡 Загружает: все образы из registry inecs"; \ echo " 💡 Загружает: все образы из registry inecs"; \
echo " 💡 Пропускает: отсутствующие образы"; \ echo " 💡 Пропускает: отсутствующие образы"; \
echo ""; \ echo ""; \
echo " 🧹 make docker-cmd clean - удалить локальные образы"; \ echo " 🧹 make docker clean - удалить локальные образы"; \
echo " 💡 Удаляет: все образы inecs/*:latest"; \ echo " 💡 Удаляет: все образы inecs/*:latest"; \
echo " 💡 Безопасно: игнорирует ошибки"; \ echo " 💡 Безопасно: игнорирует ошибки"; \
echo ""; \ echo ""; \
echo " 📊 make docker-cmd info - информация о собранных образах"; \ echo " 📊 make docker info - информация о собранных образах"; \
echo " 💡 Показывает: размер, дата создания, теги"; \ echo " 💡 Показывает: размер, дата создания, теги"; \
echo ""; \ echo ""; \
echo " 🔄 make docker-cmd update - обновить все образы"; \ echo " 🔄 make docker update - обновить все образы"; \
echo " 💡 Выполняет: pull + build + push"; \ echo " 💡 Выполняет: pull + build + push"; \
echo " 💡 Полный цикл обновления";; \ echo " 💡 Полный цикл обновления"; \
echo ""; \
echo " 💥 make docker purge - ПОЛНАЯ очистка Docker"; \
echo " ⚠️ УДАЛЯЕТ: все контейнеры, образы, тома, сети"; \
echo " ⚠️ ОСТАНОВИТ: все запущенные контейнеры"; \
echo " ⚠️ ТРЕБУЕТ: подтверждение пользователя";; \
esac esac
# ============================================================================= # =============================================================================
@@ -500,13 +527,14 @@ help:
@echo " make presets test - запустить тест с preset'ом" @echo " make presets test - запустить тест с preset'ом"
@echo "" @echo ""
@echo "🐳 DOCKER ОБРАЗЫ:" @echo "🐳 DOCKER ОБРАЗЫ:"
@echo " make docker-cmd prepare - подготовка к работе с Docker Hub" @echo " make docker prepare - подготовка к работе с Docker Hub"
@echo " make docker-cmd build - собрать все Docker образы" @echo " make docker build - собрать все Docker образы"
@echo " make docker-cmd push - отправить образы в Docker Hub" @echo " make docker push - отправить образы в Docker Hub"
@echo " make docker-cmd pull - загрузить образы из Docker Hub" @echo " make docker pull - загрузить образы из Docker Hub"
@echo " make docker-cmd clean - удалить локальные образы" @echo " make docker clean - удалить локальные образы"
@echo " make docker-cmd info - информация о собранных образах" @echo " make docker info - информация о собранных образах"
@echo " make docker-cmd update - обновить все образы (pull + build + push)" @echo " make docker update - обновить все образы (pull + build + push)"
@echo " make docker purge - ПОЛНАЯ очистка Docker (ОСТОРОЖНО!)"
@echo "" @echo ""
@echo "🔐 VAULT (управление секретами):" @echo "🔐 VAULT (управление секретами):"
@echo " make vault create - создать новый файл секретов" @echo " make vault create - создать новый файл секретов"
@@ -533,12 +561,13 @@ help:
@echo " make presets list # показать все preset'ы" @echo " make presets list # показать все preset'ы"
@echo " make presets test PRESET=etcd-patroni # тест с etcd-patroni" @echo " make presets test PRESET=etcd-patroni # тест с etcd-patroni"
@echo " make role test minimal # быстрый тест" @echo " make role test minimal # быстрый тест"
@echo " make docker-cmd build # собрать все образы" @echo " make docker build # собрать все образы"
@echo " make docker purge # полная очистка Docker"
@echo " make vault create # создать секреты" @echo " make vault create # создать секреты"
@echo "" @echo ""
@echo "📖 Подробная справка: make [команда]" @echo "📖 Подробная справка: make [команда]"
@echo "==========================================" @echo "=========================================="
# Пустые цели для совместимости # Пустые цели для совместимости
view create edit show delete lint deploy new advanced list info test build push pull clean prepare update run stop: view create edit show delete lint deploy new advanced list info test build push pull clean prepare update run stop purge:
@true @true