Исправления проблем с Docker Buildx
- Заменен buildx ls на безопасный buildx inspect - Добавлены диагностические команды для buildx - Создана функция docker-diagnose-buildx для отладки - Добавлена функция docker-reset-builder для сброса - Предварительная загрузка образа moby/buildkit:buildx-stable-1 - Полная очистка buildkit контейнеров - Обновлена документация и справка - Добавлен тестовый скрипт для проверки исправлений Автор: Сергей Антропов Сайт: https://devops.org.ru
This commit is contained in:
135
Makefile
135
Makefile
@@ -462,26 +462,24 @@ docker:
|
|||||||
fi;; \
|
fi;; \
|
||||||
clean-builder) \
|
clean-builder) \
|
||||||
echo "🧹 Очистка multi-arch builder..."; \
|
echo "🧹 Очистка multi-arch builder..."; \
|
||||||
if docker buildx ls | grep -q $(DOCKER_BUILDX_BUILDER); then \
|
$(MAKE) docker-reset-builder;; \
|
||||||
echo "🗑️ Удаление builder $(DOCKER_BUILDX_BUILDER)..."; \
|
|
||||||
docker buildx rm $(DOCKER_BUILDX_BUILDER) || true; \
|
|
||||||
echo "✅ Builder удален"; \
|
|
||||||
else \
|
|
||||||
echo "ℹ️ Builder $(DOCKER_BUILDX_BUILDER) не найден"; \
|
|
||||||
fi;; \
|
|
||||||
setup-builder) \
|
setup-builder) \
|
||||||
echo "🔧 Настройка multi-arch builder в контейнере..."; \
|
echo "🔧 Настройка multi-arch builder в контейнере..."; \
|
||||||
if ! docker buildx ls | grep -q $(DOCKER_BUILDX_BUILDER); then \
|
if $(MAKE) docker-check-builder >/dev/null 2>&1; then \
|
||||||
echo "📦 Создание builder $(DOCKER_BUILDX_BUILDER) в контейнере..."; \
|
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); \
|
docker buildx use $(DOCKER_BUILDX_BUILDER); \
|
||||||
|
else \
|
||||||
|
echo "📦 Создание builder $(DOCKER_BUILDX_BUILDER)..."; \
|
||||||
|
$(MAKE) docker-create-builder; \
|
||||||
fi; \
|
fi; \
|
||||||
echo "🔍 Проверка статуса builder..."; \
|
echo "🔍 Финальная проверка builder..."; \
|
||||||
docker buildx inspect $(DOCKER_BUILDX_BUILDER) --bootstrap;; \
|
$(MAKE) docker-check-builder;; \
|
||||||
|
diagnose) \
|
||||||
|
echo "🔍 Диагностика buildx проблем..."; \
|
||||||
|
$(MAKE) docker-diagnose-buildx;; \
|
||||||
|
reset-builder) \
|
||||||
|
echo "🔄 Сброс buildx builder..."; \
|
||||||
|
$(MAKE) docker-reset-builder;; \
|
||||||
*) \
|
*) \
|
||||||
echo "🎯 Доступные команды:"; \
|
echo "🎯 Доступные команды:"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
@@ -515,12 +513,21 @@ docker:
|
|||||||
echo " 💡 Безопасно: игнорирует ошибки"; \
|
echo " 💡 Безопасно: игнорирует ошибки"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
echo " 🧹 make docker clean-builder - очистка multi-arch builder"; \
|
echo " 🧹 make docker clean-builder - очистка multi-arch builder"; \
|
||||||
echo " 💡 Удаляет: builder контейнер"; \
|
echo " 💡 Удаляет: builder контейнер и buildkit контейнеры"; \
|
||||||
echo " 💡 Полезно: при проблемах со сборкой"; \
|
echo " 💡 Полезно: при проблемах со сборкой"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
echo " 🔧 make docker setup-builder - настройка multi-arch builder"; \
|
echo " 🔧 make docker setup-builder - настройка multi-arch builder"; \
|
||||||
echo " 💡 Создает: builder в контейнере (не в системе)"; \
|
echo " 💡 Создает: builder в контейнере (не в системе)"; \
|
||||||
echo " 💡 Поддерживает: amd64 и arm64 архитектуры"; \
|
echo " 💡 Поддерживает: amd64 и arm64 архитектуры"; \
|
||||||
|
echo " 💡 Безопасно: использует inspect вместо buildx ls"; \
|
||||||
|
echo ""; \
|
||||||
|
echo " 🔍 make docker diagnose - диагностика buildx проблем"; \
|
||||||
|
echo " 💡 Проверяет: версии, контексты, builder, registry"; \
|
||||||
|
echo " 💡 Показывает: рекомендации по устранению проблем"; \
|
||||||
|
echo ""; \
|
||||||
|
echo " 🔄 make docker reset-builder - сброс buildx builder"; \
|
||||||
|
echo " 💡 Удаляет: старый builder и buildkit контейнеры"; \
|
||||||
|
echo " 💡 Создает: новый builder с предварительной загрузкой образа"; \
|
||||||
echo ""; \
|
echo ""; \
|
||||||
echo " 📊 make docker info - информация о собранных образах"; \
|
echo " 📊 make docker info - информация о собранных образах"; \
|
||||||
echo " 💡 Показывает: размер, дата создания, теги"; \
|
echo " 💡 Показывает: размер, дата создания, теги"; \
|
||||||
@@ -540,6 +547,93 @@ docker:
|
|||||||
# ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ДЛЯ DOCKER
|
# ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ДЛЯ DOCKER
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
||||||
|
# Надежная проверка существования buildx builder без использования buildx ls
|
||||||
|
# Использует docker buildx inspect вместо buildx ls для избежания зависаний
|
||||||
|
.PHONY: docker-check-builder
|
||||||
|
docker-check-builder:
|
||||||
|
@echo "🔍 Проверка buildx builder $(DOCKER_BUILDX_BUILDER)..."
|
||||||
|
@if docker buildx inspect $(DOCKER_BUILDX_BUILDER) >/dev/null 2>&1; then \
|
||||||
|
echo "✅ Builder $(DOCKER_BUILDX_BUILDER) существует и готов"; \
|
||||||
|
exit 0; \
|
||||||
|
else \
|
||||||
|
echo "❌ Builder $(DOCKER_BUILDX_BUILDER) не найден"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Безопасное создание buildx builder с предварительной очисткой
|
||||||
|
.PHONY: docker-create-builder
|
||||||
|
docker-create-builder:
|
||||||
|
@echo "🔧 Создание buildx builder $(DOCKER_BUILDX_BUILDER)..."
|
||||||
|
@echo "📦 Предварительная загрузка образа buildkit..."
|
||||||
|
@docker pull moby/buildkit:buildx-stable-1 || echo "⚠️ Не удалось загрузить moby/buildkit:buildx-stable-1, будет использован авто-пулл"
|
||||||
|
@echo "🗑️ Удаление существующего builder (если есть)..."
|
||||||
|
@docker buildx rm -f $(DOCKER_BUILDX_BUILDER) 2>/dev/null || true
|
||||||
|
@echo "📦 Создание нового builder..."
|
||||||
|
@docker buildx create \
|
||||||
|
--name $(DOCKER_BUILDX_BUILDER) \
|
||||||
|
--driver docker-container \
|
||||||
|
--driver-opt image=moby/buildkit:buildx-stable-1 \
|
||||||
|
--use || exit 1
|
||||||
|
@echo "⏳ Ожидание запуска buildkit контейнера..."
|
||||||
|
@sleep 3
|
||||||
|
@echo "🔍 Проверка готовности builder..."
|
||||||
|
@docker buildx inspect --builder $(DOCKER_BUILDX_BUILDER) --bootstrap >/dev/null || exit 1
|
||||||
|
@echo "✅ Builder $(DOCKER_BUILDX_BUILDER) создан и готов к работе"
|
||||||
|
|
||||||
|
# Диагностика проблем с buildx
|
||||||
|
.PHONY: docker-diagnose-buildx
|
||||||
|
docker-diagnose-buildx:
|
||||||
|
@echo "🔍 ДИАГНОСТИКА BUILDX ПРОБЛЕМ"
|
||||||
|
@echo "=========================================="
|
||||||
|
@echo ""
|
||||||
|
@echo "📊 1. Версии Docker и Buildx:"
|
||||||
|
@docker version --format "Docker: {{.Server.Version}}" 2>/dev/null || echo "❌ Docker недоступен"
|
||||||
|
@docker buildx version 2>/dev/null || echo "❌ Buildx недоступен"
|
||||||
|
@echo ""
|
||||||
|
@echo "📋 2. Docker контексты (поиск мертвых tcp://):"
|
||||||
|
@docker context ls 2>/dev/null || echo "❌ Не удалось получить список контекстов"
|
||||||
|
@echo ""
|
||||||
|
@echo "🔍 3. Проверка builder $(DOCKER_BUILDX_BUILDER):"
|
||||||
|
@if docker buildx inspect $(DOCKER_BUILDX_BUILDER) >/dev/null 2>&1; then \
|
||||||
|
echo "✅ Builder $(DOCKER_BUILDX_BUILDER) существует"; \
|
||||||
|
docker buildx inspect $(DOCKER_BUILDX_BUILDER) --bootstrap >/dev/null 2>&1 && echo "✅ Builder готов" || echo "❌ Builder не готов"; \
|
||||||
|
else \
|
||||||
|
echo "❌ Builder $(DOCKER_BUILDX_BUILDER) не найден"; \
|
||||||
|
fi
|
||||||
|
@echo ""
|
||||||
|
@echo "🐳 4. Buildkit контейнеры:"
|
||||||
|
@docker ps -a --filter "name=buildx_buildkit" --format "table {{.Names}}\t{{.Status}}\t{{.CreatedAt}}" 2>/dev/null || echo "❌ Не удалось получить список контейнеров"
|
||||||
|
@echo ""
|
||||||
|
@echo "🌐 5. Проверка доступа к registry:"
|
||||||
|
@echo "📥 Тест загрузки moby/buildkit:buildx-stable-1..."
|
||||||
|
@timeout 30 docker pull moby/buildkit:buildx-stable-1 >/dev/null 2>&1 && echo "✅ Доступ к registry OK" || echo "❌ Проблемы с доступом к registry"
|
||||||
|
@echo ""
|
||||||
|
@echo "🔧 6. Docker socket доступ:"
|
||||||
|
@if [ -S /var/run/docker.sock ]; then \
|
||||||
|
echo "✅ Docker socket доступен: /var/run/docker.sock"; \
|
||||||
|
ls -la /var/run/docker.sock; \
|
||||||
|
else \
|
||||||
|
echo "❌ Docker socket недоступен: /var/run/docker.sock"; \
|
||||||
|
fi
|
||||||
|
@echo ""
|
||||||
|
@echo "💡 РЕКОМЕНДАЦИИ:"
|
||||||
|
@echo " - Если buildx ls зависает: удалите мертвые контексты (docker context rm <name>)"
|
||||||
|
@echo " - Если pull зависает: настройте прокси или используйте mirror registry"
|
||||||
|
@echo " - Если builder не создается: проверьте права доступа к Docker socket"
|
||||||
|
@echo " - Для полной очистки: make docker clean-builder && make docker-create-builder"
|
||||||
|
|
||||||
|
# Быстрая очистка и пересоздание builder
|
||||||
|
.PHONY: docker-reset-builder
|
||||||
|
docker-reset-builder:
|
||||||
|
@echo "🔄 Сброс buildx builder..."
|
||||||
|
@echo "🗑️ Удаление builder $(DOCKER_BUILDX_BUILDER)..."
|
||||||
|
@docker buildx rm -f $(DOCKER_BUILDX_BUILDER) 2>/dev/null || true
|
||||||
|
@echo "🧹 Очистка buildkit контейнеров..."
|
||||||
|
@docker ps -a --filter "name=buildx_buildkit" --format "{{.Names}}" | xargs -r docker rm -f 2>/dev/null || true
|
||||||
|
@echo "📦 Создание нового builder..."
|
||||||
|
@$(MAKE) docker-create-builder
|
||||||
|
@echo "✅ Builder сброшен и готов к работе"
|
||||||
|
|
||||||
|
|
||||||
# Извлечение тега из базового образа
|
# Извлечение тега из базового образа
|
||||||
docker-get-base-tag:
|
docker-get-base-tag:
|
||||||
@@ -687,7 +781,10 @@ help:
|
|||||||
@echo "🔧 DOCKER BUILDER (Multi-Arch):"
|
@echo "🔧 DOCKER BUILDER (Multi-Arch):"
|
||||||
@echo " make docker setup-builder - настройка multi-arch builder в контейнере"
|
@echo " make docker setup-builder - настройка multi-arch builder в контейнере"
|
||||||
@echo " make docker clean-builder - очистка multi-arch builder"
|
@echo " make docker clean-builder - очистка multi-arch builder"
|
||||||
|
@echo " make docker diagnose - диагностика buildx проблем"
|
||||||
|
@echo " make docker reset-builder - сброс buildx builder"
|
||||||
@echo " 💡 Поддерживает: amd64, arm64, riscv64, ppc64le, s390x, 386, arm/v7, arm/v6"
|
@echo " 💡 Поддерживает: amd64, arm64, riscv64, ppc64le, s390x, 386, arm/v7, arm/v6"
|
||||||
|
@echo " 💡 Безопасно: использует inspect вместо buildx ls (избегает зависаний)"
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "🔐 VAULT (управление секретами):"
|
@echo "🔐 VAULT (управление секретами):"
|
||||||
@echo " make vault create - создать новый файл секретов"
|
@echo " make vault create - создать новый файл секретов"
|
||||||
@@ -715,6 +812,8 @@ help:
|
|||||||
@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 setup-builder # настройка multi-arch builder"
|
@echo " make docker setup-builder # настройка multi-arch builder"
|
||||||
|
@echo " make docker diagnose # диагностика buildx проблем"
|
||||||
|
@echo " make docker reset-builder # сброс buildx builder"
|
||||||
@echo " make docker build # собрать все образы (amd64 + arm64)"
|
@echo " make docker build # собрать все образы (amd64 + arm64)"
|
||||||
@echo " make docker rebuild # полная пересборка с очисткой кеша"
|
@echo " make docker rebuild # полная пересборка с очисткой кеша"
|
||||||
@echo " make controller build # собрать ansible-controller (multi-arch)"
|
@echo " make controller build # собрать ansible-controller (multi-arch)"
|
||||||
@@ -726,5 +825,5 @@ help:
|
|||||||
@echo "=========================================="
|
@echo "=========================================="
|
||||||
|
|
||||||
# Пустые цели для совместимости
|
# Пустые цели для совместимости
|
||||||
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:
|
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 diagnose reset-builder:
|
||||||
@true
|
@true
|
||||||
|
|||||||
98
docs/buildx-fixes.md
Normal file
98
docs/buildx-fixes.md
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
# Исправления проблем с Docker Buildx
|
||||||
|
|
||||||
|
## Проблема
|
||||||
|
Команда `docker buildx ls` часто зависает в CI/CD окружениях из-за:
|
||||||
|
- Мертвых Docker контекстов (tcp://...)
|
||||||
|
- Проблем с доступом к registry
|
||||||
|
- Недостаточных привилегий
|
||||||
|
- Старых/битых builder'ов
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
|
||||||
|
### 1. Замена `buildx ls` на `buildx inspect`
|
||||||
|
**Было:**
|
||||||
|
```bash
|
||||||
|
if ! docker buildx ls | grep -q $(DOCKER_BUILDX_BUILDER); then
|
||||||
|
```
|
||||||
|
|
||||||
|
**Стало:**
|
||||||
|
```bash
|
||||||
|
if docker buildx inspect $(DOCKER_BUILDX_BUILDER) >/dev/null 2>&1; then
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Новые надежные функции
|
||||||
|
|
||||||
|
#### `docker-check-builder`
|
||||||
|
- Проверяет существование builder'а через `inspect`
|
||||||
|
- Не зависает на мертвых контекстах
|
||||||
|
- Возвращает четкий статус
|
||||||
|
|
||||||
|
#### `docker-create-builder`
|
||||||
|
- Предварительная загрузка образа `moby/buildkit:buildx-stable-1`
|
||||||
|
- Очистка старых builder'ов
|
||||||
|
- Явное указание образа buildkit
|
||||||
|
- Проверка готовности через `inspect --bootstrap`
|
||||||
|
|
||||||
|
#### `docker-diagnose-buildx`
|
||||||
|
- Полная диагностика проблем с buildx
|
||||||
|
- Проверка версий Docker и Buildx
|
||||||
|
- Поиск мертвых контекстов
|
||||||
|
- Проверка доступа к registry
|
||||||
|
- Проверка Docker socket
|
||||||
|
- Рекомендации по устранению
|
||||||
|
|
||||||
|
#### `docker-reset-builder`
|
||||||
|
- Полная очистка и пересоздание builder'а
|
||||||
|
- Удаление buildkit контейнеров
|
||||||
|
- Создание нового builder'а с предварительной загрузкой
|
||||||
|
|
||||||
|
### 3. Обновленные команды
|
||||||
|
|
||||||
|
#### `make docker setup-builder`
|
||||||
|
- Использует `docker-check-builder` вместо `buildx ls`
|
||||||
|
- Безопасное создание builder'а
|
||||||
|
- Предварительная загрузка образа
|
||||||
|
|
||||||
|
#### `make docker clean-builder`
|
||||||
|
- Теперь использует `docker-reset-builder`
|
||||||
|
- Полная очистка buildkit контейнеров
|
||||||
|
|
||||||
|
#### Новые команды:
|
||||||
|
- `make docker diagnose` - диагностика проблем
|
||||||
|
- `make docker reset-builder` - сброс builder'а
|
||||||
|
|
||||||
|
### 4. Преимущества
|
||||||
|
|
||||||
|
✅ **Нет зависаний** - не использует `buildx ls`
|
||||||
|
✅ **Быстрая диагностика** - четкие сообщения об ошибках
|
||||||
|
✅ **Предварительная загрузка** - избегает проблем с pull в bootstrap
|
||||||
|
✅ **Полная очистка** - удаляет все связанные контейнеры
|
||||||
|
✅ **Подробные логи** - понятные сообщения о процессе
|
||||||
|
|
||||||
|
### 5. Использование
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Диагностика проблем
|
||||||
|
make docker diagnose
|
||||||
|
|
||||||
|
# Сброс builder'а при проблемах
|
||||||
|
make docker reset-builder
|
||||||
|
|
||||||
|
# Обычная настройка (теперь безопасная)
|
||||||
|
make docker setup-builder
|
||||||
|
|
||||||
|
# Сборка образов
|
||||||
|
make docker build
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6. Рекомендации для CI/CD
|
||||||
|
|
||||||
|
1. **Используйте `docker-diagnose-buildx`** при проблемах
|
||||||
|
2. **Настройте прокси** для доступа к registry
|
||||||
|
3. **Очищайте мертвые контексты** регулярно
|
||||||
|
4. **Используйте `docker-reset-builder`** при зависаниях
|
||||||
|
5. **Проверяйте права доступа** к Docker socket
|
||||||
|
|
||||||
|
## Автор
|
||||||
|
Сергей Антропов
|
||||||
|
Сайт: https://devops.org.ru
|
||||||
115
scripts/test-buildx-fixes.sh
Executable file
115
scripts/test-buildx-fixes.sh
Executable file
@@ -0,0 +1,115 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# Тестирование исправлений buildx проблем
|
||||||
|
# Автор: Сергей Антропов
|
||||||
|
# Сайт: https://devops.org.ru
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
echo "🧪 ТЕСТИРОВАНИЕ ИСПРАВЛЕНИЙ BUILDX"
|
||||||
|
echo "=================================="
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Цвета для вывода
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[0;32m'
|
||||||
|
YELLOW='\033[0;33m'
|
||||||
|
BLUE='\033[0;34m'
|
||||||
|
RESET='\033[0m'
|
||||||
|
|
||||||
|
# Функция для вывода результатов
|
||||||
|
test_result() {
|
||||||
|
local test_name="$1"
|
||||||
|
local result="$2"
|
||||||
|
local message="$3"
|
||||||
|
|
||||||
|
if [ "$result" = "PASS" ]; then
|
||||||
|
echo -e "${GREEN}✅ $test_name: $message${RESET}"
|
||||||
|
else
|
||||||
|
echo -e "${RED}❌ $test_name: $message${RESET}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "🔍 1. Проверка версий Docker и Buildx..."
|
||||||
|
if docker version >/dev/null 2>&1; then
|
||||||
|
test_result "Docker" "PASS" "Docker доступен"
|
||||||
|
else
|
||||||
|
test_result "Docker" "FAIL" "Docker недоступен"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if docker buildx version >/dev/null 2>&1; then
|
||||||
|
test_result "Buildx" "PASS" "Buildx доступен"
|
||||||
|
else
|
||||||
|
test_result "Buildx" "FAIL" "Buildx недоступен"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔍 2. Тестирование docker-check-builder..."
|
||||||
|
if make docker-check-builder >/dev/null 2>&1; then
|
||||||
|
test_result "check-builder" "PASS" "Builder существует"
|
||||||
|
else
|
||||||
|
test_result "check-builder" "PASS" "Builder не найден (ожидаемо)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔍 3. Тестирование docker-diagnose-buildx..."
|
||||||
|
if make docker-diagnose-buildx >/dev/null 2>&1; then
|
||||||
|
test_result "diagnose" "PASS" "Диагностика работает"
|
||||||
|
else
|
||||||
|
test_result "diagnose" "FAIL" "Диагностика не работает"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔍 4. Тестирование docker-create-builder..."
|
||||||
|
echo "📦 Создание тестового builder..."
|
||||||
|
if make docker-create-builder >/dev/null 2>&1; then
|
||||||
|
test_result "create-builder" "PASS" "Builder создан успешно"
|
||||||
|
else
|
||||||
|
test_result "create-builder" "FAIL" "Не удалось создать builder"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔍 5. Проверка созданного builder..."
|
||||||
|
if make docker-check-builder >/dev/null 2>&1; then
|
||||||
|
test_result "verify-builder" "PASS" "Builder готов к работе"
|
||||||
|
else
|
||||||
|
test_result "verify-builder" "FAIL" "Builder не готов"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔍 6. Тестирование docker-reset-builder..."
|
||||||
|
if make docker-reset-builder >/dev/null 2>&1; then
|
||||||
|
test_result "reset-builder" "PASS" "Builder сброшен успешно"
|
||||||
|
else
|
||||||
|
test_result "reset-builder" "FAIL" "Не удалось сбросить builder"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔍 7. Проверка отсутствия buildx ls в коде..."
|
||||||
|
if grep -r "buildx ls" Makefile >/dev/null 2>&1; then
|
||||||
|
test_result "no-buildx-ls" "FAIL" "Найдены использования buildx ls"
|
||||||
|
else
|
||||||
|
test_result "no-buildx-ls" "PASS" "buildx ls не используется"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔍 8. Проверка использования inspect..."
|
||||||
|
if grep -r "buildx inspect" Makefile >/dev/null 2>&1; then
|
||||||
|
test_result "uses-inspect" "PASS" "Используется buildx inspect"
|
||||||
|
else
|
||||||
|
test_result "uses-inspect" "FAIL" "buildx inspect не используется"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "=================================="
|
||||||
|
echo "🎯 РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ"
|
||||||
|
echo "=================================="
|
||||||
|
echo ""
|
||||||
|
echo "💡 Рекомендации:"
|
||||||
|
echo " - Используйте 'make docker diagnose' при проблемах"
|
||||||
|
echo " - Используйте 'make docker reset-builder' при зависаниях"
|
||||||
|
echo " - Избегайте 'docker buildx ls' в CI/CD"
|
||||||
|
echo " - Используйте 'make docker setup-builder' для настройки"
|
||||||
|
echo ""
|
||||||
|
echo "✅ Исправления buildx проблем готовы к использованию!"
|
||||||
Reference in New Issue
Block a user