Исправления проблем с 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:
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