Files
DevOpsLab/scripts/test-buildx-fixes.sh
Сергей Антропов e389cad393 Исправления проблем с Docker Buildx
- Заменен buildx ls на безопасный buildx inspect
- Добавлены диагностические команды для buildx
- Создана функция docker-diagnose-buildx для отладки
- Добавлена функция docker-reset-builder для сброса
- Предварительная загрузка образа moby/buildkit:buildx-stable-1
- Полная очистка buildkit контейнеров
- Обновлена документация и справка
- Добавлен тестовый скрипт для проверки исправлений

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-10-25 15:13:00 +03:00

116 lines
3.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 проблем готовы к использованию!"