Compare commits

...

6 Commits

Author SHA1 Message Date
Сергей Антропов
7f6d9c9268 docs: Обновлена документация с командой docker rebuild
- Добавлена команда make docker rebuild в основную справку
- Обновлены примеры использования с новой командой
- Команда rebuild выполняет полную пересборку с очисткой кеша
- Полезно при проблемах с кешем или зависимостями

Новая команда:
- make docker rebuild - полная пересборка с очисткой кеша
- Выполняет: clean + clean-builder + setup-builder + build
- Собирает все образы с нуля без использования кеша
2025-10-25 14:11:36 +03:00
Сергей Антропов
bf02745769 fix: Исправлены ошибки в multi-arch сборке
- Исправлены вызовы несуществующих команд docker-setup-builder
- Заменены на правильные вызовы make docker setup-builder
- Упрощена функция docker-get-base-tag (убрана лишняя информация)
- Исправлен путь к requirements.yml в Dockerfile ansible-controller
- Убрана лишняя информация из вывода тегов

Исправления:
- make docker build теперь правильно вызывает setup-builder
- make controller build теперь правильно вызывает setup-builder
- docker-get-base-tag выводит только тег без лишней информации
- requirements.yml копируется из правильного пути

Теперь multi-arch сборка должна работать корректно.
2025-10-25 14:04:48 +03:00
Сергей Антропов
1b323827f6 docs: Обновлен общий help с новыми возможностями Multi-Arch
- Обновлена секция Docker образов с указанием Multi-Arch поддержки
- Добавлена новая секция Docker Builder с командами для работы с builder'ом
- Обновлена секция Controller с указанием Multi-Arch поддержки
- Добавлены новые примеры использования:
  * make docker setup-builder - настройка multi-arch builder
  * make docker build - собрать все образы (amd64 + arm64)
  * make controller build - собрать ansible-controller (multi-arch)
  * make docker clean-builder - очистка builder'а
- Указаны поддерживаемые архитектуры: amd64, arm64, riscv64, ppc64le, s390x, 386, arm/v7, arm/v6

Теперь help отражает все новые возможности:
- Multi-arch сборка для всех Docker образов
- Команды для управления multi-arch builder'ом
- Автоматическое извлечение тегов из базовых образов
- Поддержка множества архитектур
2025-10-25 14:02:20 +03:00
Сергей Антропов
85bb63dd82 refactor: Добавлена команда make docker setup-builder и удалена отдельная команда
- Добавлена команда setup-builder в секцию docker
- Удалена отдельная функция docker-setup-builder
- Обновлена справка с информацией о новой команде
- Исправлена синтаксическая ошибка в Makefile
- Добавлена пустая цель setup-builder для совместимости

Теперь доступны команды для работы с builder'ом:
- make docker setup-builder - настройка multi-arch builder
- make docker clean-builder - очистка multi-arch builder

Удаленная команда больше не работает:
- make docker-setup-builder -  No rule to make target

Это делает интерфейс более последовательным и понятным.
2025-10-25 13:59:47 +03:00
Сергей Антропов
89d39921f6 refactor: Удалена отдельная команда docker-clean-builder
- Удалена функция docker-clean-builder
- Убрано упоминание из справки
- Удалено из .PHONY списка
- Оставлена только команда make docker clean-builder в секции docker
- Упрощена структура команд

Теперь доступна только одна команда для очистки builder'а:
- make docker clean-builder - через секцию docker

Это делает интерфейс более последовательным и понятным.
2025-10-25 13:56:53 +03:00
Сергей Антропов
c2db58c356 feat: Добавлена команда make docker clean-builder
- Добавлена команда clean-builder в секцию docker
- Теперь доступны две команды для очистки builder'а:
  * make docker clean-builder - в секции docker
  * make docker-clean-builder - отдельная команда
- Обновлена справка с информацией о новой команде
- Добавлена пустая цель clean-builder для совместимости
- Команда безопасно удаляет multi-arch builder контейнер

Использование:
- make docker clean-builder - очистка builder'а через секцию docker
- make docker-clean-builder - очистка builder'а как отдельная команда
- Обе команды выполняют одинаковые действия
2025-10-25 13:56:00 +03:00
2 changed files with 70 additions and 44 deletions

112
Makefile
View File

@@ -377,12 +377,26 @@ docker:
echo "📋 Платформы: $(DOCKER_PLATFORMS)"; \
echo "📋 Builder: $(DOCKER_BUILDX_BUILDER)"; \
echo ""; \
$(MAKE) docker-setup-builder; \
$(MAKE) docker setup-builder; \
for image in $(DOCKER_IMAGES); do \
echo "🔨 Сборка $(DOCKER_REGISTRY)/$$image:$(DOCKER_VERSION)"; \
$(MAKE) docker-build-image IMAGE=$$image; \
done; \
echo "✅ Образы собраны";; \
rebuild) \
echo "🔄 Полная пересборка Docker образов (multi-arch)..."; \
echo "📋 Платформы: $(DOCKER_PLATFORMS)"; \
echo "📋 Builder: $(DOCKER_BUILDX_BUILDER)"; \
echo "🧹 Очистка кеша и старых образов..."; \
echo ""; \
$(MAKE) docker clean; \
$(MAKE) docker clean-builder; \
$(MAKE) docker setup-builder; \
for image in $(DOCKER_IMAGES); do \
echo "🔨 Пересборка $(DOCKER_REGISTRY)/$$image:$(DOCKER_VERSION)"; \
$(MAKE) docker-build-image IMAGE=$$image; \
done; \
echo "✅ Образы пересобраны с нуля";; \
push) \
echo "📤 Отправка Docker образов в Docker Hub..."; \
for image in $(DOCKER_IMAGES); do \
@@ -440,6 +454,28 @@ docker:
else \
echo "❌ Очистка отменена"; \
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;; \
setup-builder) \
echo "🔧 Настройка multi-arch builder в контейнере..."; \
if ! docker buildx ls | grep -q $(DOCKER_BUILDX_BUILDER); then \
echo "📦 Создание builder $(DOCKER_BUILDX_BUILDER) в контейнере..."; \
docker buildx create --name $(DOCKER_BUILDX_BUILDER) --driver docker-container --bootstrap --use; \
echo "⏳ Ожидание запуска builder..."; \
sleep 5; \
else \
echo "✅ Builder $(DOCKER_BUILDX_BUILDER) уже существует"; \
docker buildx use $(DOCKER_BUILDX_BUILDER); \
fi; \
echo "🔍 Проверка статуса builder..."; \
docker buildx inspect $(DOCKER_BUILDX_BUILDER) --bootstrap;; \
*) \
echo "🎯 Доступные команды:"; \
echo ""; \
@@ -454,6 +490,12 @@ docker:
echo " 💡 Тегирует: inecs/образ:<tag> (автоматически извлекает теги)"; \
echo " 💡 Отправляет: автоматически в Docker Hub"; \
echo ""; \
echo " 🔄 make docker rebuild - полная пересборка с очисткой кеша"; \
echo " 💡 Очищает: все локальные образы и кеш"; \
echo " 💡 Пересобирает: все образы с нуля"; \
echo " 💡 Полезно: при проблемах с кешем или зависимостями"; \
echo " 💡 Выполняет: clean + clean-builder + setup-builder + build"; \
echo ""; \
echo " 📤 make docker push - отправить образы в Docker Hub"; \
echo " 💡 Требует: docker login"; \
echo " 💡 Отправляет: все образы в registry inecs"; \
@@ -466,6 +508,14 @@ docker:
echo " 💡 Удаляет: все образы inecs/*:latest"; \
echo " 💡 Безопасно: игнорирует ошибки"; \
echo ""; \
echo " 🧹 make docker clean-builder - очистка multi-arch builder"; \
echo " 💡 Удаляет: builder контейнер"; \
echo " 💡 Полезно: при проблемах со сборкой"; \
echo ""; \
echo " 🔧 make docker setup-builder - настройка multi-arch builder"; \
echo " 💡 Создает: builder в контейнере (не в системе)"; \
echo " 💡 Поддерживает: amd64 и arm64 архитектуры"; \
echo ""; \
echo " 📊 make docker info - информация о собранных образах"; \
echo " 💡 Показывает: размер, дата создания, теги"; \
echo ""; \
@@ -477,34 +527,13 @@ docker:
echo " ⚠️ УДАЛЯЕТ: все контейнеры, образы, тома, сети"; \
echo " ⚠️ ОСТАНОВИТ: все запущенные контейнеры"; \
echo " ⚠️ ТРЕБУЕТ: подтверждение пользователя"; \
echo ""; \
echo " 🔧 make docker-setup-builder - настройка multi-arch builder"; \
echo " 💡 Создает: builder в контейнере (не в системе)"; \
echo " 💡 Поддерживает: amd64 и arm64 архитектуры"; \
echo ""; \
echo " 🧹 make docker-clean-builder - очистка multi-arch builder"; \
echo " 💡 Удаляет: builder контейнер"; \
echo " 💡 Полезно: при проблемах со сборкой";; \
echo "";; \
esac
# =============================================================================
# ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ДЛЯ DOCKER
# =============================================================================
# Настройка multi-arch builder
docker-setup-builder:
@echo "🔧 Настройка multi-arch builder в контейнере..."; \
if ! docker buildx ls | grep -q $(DOCKER_BUILDX_BUILDER); then \
echo "📦 Создание builder $(DOCKER_BUILDX_BUILDER) в контейнере..."; \
docker buildx create --name $(DOCKER_BUILDX_BUILDER) --driver docker-container --bootstrap --use; \
echo "⏳ Ожидание запуска builder..."; \
sleep 5; \
else \
echo "✅ Builder $(DOCKER_BUILDX_BUILDER) уже существует"; \
docker buildx use $(DOCKER_BUILDX_BUILDER); \
fi; \
echo "🔍 Проверка статуса builder..."; \
docker buildx inspect $(DOCKER_BUILDX_BUILDER) --bootstrap
# Извлечение тега из базового образа
docker-get-base-tag:
@@ -540,9 +569,6 @@ docker-get-base-tag:
echo "❌ Неизвестный образ: $(IMAGE)"; \
exit 1;; \
esac; \
echo "📋 Образ: $(IMAGE)"; \
echo "📋 Базовый образ: $$BASE_IMAGE"; \
echo "📋 Тег: $$TAG"; \
echo "$$TAG"
# Сборка одного образа с multi-arch
@@ -562,16 +588,6 @@ docker-build-image:
.; \
echo "$(IMAGE):$$TAG собран и отправлен"
# Очистка multi-arch builder
docker-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
# =============================================================================
# КОМАНДЫ ДЛЯ РАБОТЫ С ANSIBLE-CONTROLLER
@@ -581,7 +597,7 @@ controller:
build) \
echo "🔨 Сборка ansible-controller (multi-arch)..."; \
echo "📋 Платформы: $(DOCKER_PLATFORMS)"; \
$(MAKE) docker-setup-builder; \
$(MAKE) docker setup-builder; \
cd dockerfiles/ansible-controller && \
docker buildx build \
--platform $(DOCKER_PLATFORMS) \
@@ -642,9 +658,10 @@ help:
@echo " make presets info - подробная информация о preset'е"
@echo " make presets test - запустить тест с preset'ом"
@echo ""
@echo "🐳 DOCKER ОБРАЗЫ:"
@echo "🐳 DOCKER ОБРАЗЫ (Multi-Arch):"
@echo " make docker prepare - подготовка к работе с Docker Hub"
@echo " make docker build - собрать все Docker образы"
@echo " make docker build - собрать все Docker образы (amd64 + arm64)"
@echo " make docker rebuild - полная пересборка с очисткой кеша"
@echo " make docker push - отправить образы в Docker Hub"
@echo " make docker pull - загрузить образы из Docker Hub"
@echo " make docker clean - удалить локальные образы"
@@ -652,6 +669,11 @@ help:
@echo " make docker update - обновить все образы (pull + build + push)"
@echo " make docker purge - ПОЛНАЯ очистка Docker (ОСТОРОЖНО!)"
@echo ""
@echo "🔧 DOCKER BUILDER (Multi-Arch):"
@echo " make docker setup-builder - настройка multi-arch builder в контейнере"
@echo " make docker clean-builder - очистка multi-arch builder"
@echo " 💡 Поддерживает: amd64, arm64, riscv64, ppc64le, s390x, 386, arm/v7, arm/v6"
@echo ""
@echo "🔐 VAULT (управление секретами):"
@echo " make vault create - создать новый файл секретов"
@echo " make vault edit - редактировать существующие секреты"
@@ -668,8 +690,8 @@ help:
@echo " make git pull - получить изменения из репозитория"
@echo " make git new - создать новую ветку"
@echo ""
@echo "🎮 CONTROLLER (ansible-controller):"
@echo " make controller build - собрать ansible-controller"
@echo "🎮 CONTROLLER (ansible-controller Multi-Arch):"
@echo " make controller build - собрать ansible-controller (amd64 + arm64)"
@echo " make controller run - запустить ansible-controller"
@echo " make controller stop - остановить ansible-controller"
@echo ""
@@ -677,7 +699,11 @@ help:
@echo " make presets list # показать все preset'ы"
@echo " make presets test PRESET=etcd-patroni # тест с etcd-patroni"
@echo " make role test minimal # быстрый тест"
@echo " make docker build # собрать все образы"
@echo " make docker setup-builder # настройка multi-arch builder"
@echo " make docker build # собрать все образы (amd64 + arm64)"
@echo " make docker rebuild # полная пересборка с очисткой кеша"
@echo " make controller build # собрать ansible-controller (multi-arch)"
@echo " make docker clean-builder # очистка builder'а"
@echo " make docker purge # полная очистка Docker"
@echo " make vault create # создать секреты"
@echo ""
@@ -685,5 +711,5 @@ help:
@echo "=========================================="
# Пустые цели для совместимости
view create edit show delete lint deploy new advanced list info test build push pull clean prepare update run stop purge:
view create edit show delete lint deploy new advanced list info test build push pull clean prepare update run stop purge clean-builder setup-builder:
@true

View File

@@ -57,7 +57,7 @@ RUN curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.22.1 sh - \
&& rm -rf istio-1.22.1
# Копируем requirements.yml
COPY dockerfiles/ansible-controller/requirements.yml /tmp/requirements.yml
COPY requirements.yml /tmp/requirements.yml
# Устанавливаем Ansible коллекции
RUN ansible-galaxy collection install -r /tmp/requirements.yml