fix: Исправлена настройка buildx для работы в контейнере

- Обновлена функция docker-setup-builder для работы в контейнере
- Добавлен флаг --bootstrap для автоматического запуска builder'а
- Добавлена проверка статуса builder'а после создания
- Добавлена функция docker-clean-builder для очистки builder'а
- Обновлена справка с информацией о новых функциях
- Builder теперь работает в контейнере, а не устанавливается в систему
- Поддержка всех платформ: linux/arm64, linux/amd64, linux/amd64/v2, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6

Исправления:
- buildx теперь запускается в контейнере
- Автоматическая проверка статуса builder'а
- Возможность очистки и пересоздания builder'а
- Улучшенная диагностика проблем со сборкой
This commit is contained in:
Сергей Антропов
2025-10-25 13:54:40 +03:00
parent 91e7554d71
commit 8f5a9c955c

View File

@@ -476,7 +476,15 @@ docker:
echo " 💥 make docker purge - ПОЛНАЯ очистка Docker"; \
echo " ⚠️ УДАЛЯЕТ: все контейнеры, образы, тома, сети"; \
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 " 💡 Полезно: при проблемах со сборкой";; \
esac
# =============================================================================
@@ -485,14 +493,18 @@ docker:
# Настройка multi-arch builder
docker-setup-builder:
@echo "🔧 Настройка multi-arch 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 --use; \
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
fi; \
echo "🔍 Проверка статуса builder..."; \
docker buildx inspect $(DOCKER_BUILDX_BUILDER) --bootstrap
# Извлечение тега из базового образа
docker-get-base-tag:
@@ -550,6 +562,17 @@ 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
# =============================================================================