java_demo/scripts/test-docker-build.sh
wangtianqi 4862d39139 fix: Optimize Docker build and resolve network timeout issues
根据Gemini建议的优化方案:

 **Dockerfile修复**:
- 修复FROM语句大小写警告 (as -> AS)
- 修复Maven settings.xml中的XML标签错误 (<n> -> <name>)
- 优化健康检查端点支持Actuator标准
- 统一使用mvnw执行命令

 **Jenkinsfile优化**:
- 简化Docker buildx命令,移除可能导致网络问题的参数
- 添加备用构建方案:Buildx失败时自动切换到传统Docker构建
- 移除复杂的缓存配置,先确保基本构建正常
- 优化错误处理和重试逻辑
- 减少重试次数避免无谓等待

 **工具脚本**:
- setup-docker-mirrors.sh: 配置Docker镜像加速器
- test-docker-build.sh: 测试Docker构建环境
- 包含网络优化和构建器验证

**主要解决问题**:
- Docker Hub网络超时问题
- Buildx配置复杂性
- 构建失败时的降级策略

下一步建议在服务器运行 scripts/setup-docker-mirrors.sh 配置镜像加速器
2025-06-24 10:08:54 +08:00

74 lines
1.8 KiB
Bash
Raw Permalink 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
# Docker构建测试脚本
echo "🧪 测试Docker构建环境..."
echo ""
echo "1. 检查Docker版本:"
docker --version
echo ""
echo "2. 检查Docker Buildx:"
docker buildx version
echo ""
echo "3. 检查Docker daemon配置:"
if [ -f /etc/docker/daemon.json ]; then
echo "✅ daemon.json存在:"
cat /etc/docker/daemon.json
else
echo "⚠️ daemon.json不存在建议运行 setup-docker-mirrors.sh"
fi
echo ""
echo "4. 检查Docker镜像加速器:"
docker info | grep -A 5 "Registry Mirrors" || echo "❌ 未配置镜像加速器"
echo ""
echo "5. 测试基础镜像拉取:"
echo "正在测试拉取 hello-world 镜像..."
if docker pull hello-world; then
echo "✅ 基础镜像拉取成功"
docker run --rm hello-world
else
echo "❌ 基础镜像拉取失败"
fi
echo ""
echo "6. 测试 amazoncorretto 镜像拉取:"
echo "正在测试拉取 amazoncorretto:17-alpine-jdk 镜像..."
if timeout 300 docker pull amazoncorretto:17-alpine-jdk; then
echo "✅ amazoncorretto镜像拉取成功"
else
echo "❌ amazoncorretto镜像拉取失败或超时"
fi
echo ""
echo "7. 检查Buildx构建器:"
if docker buildx inspect jenkins-builder >/dev/null 2>&1; then
echo "✅ jenkins-builder构建器存在"
docker buildx inspect jenkins-builder
else
echo "⚠️ jenkins-builder构建器不存在将创建新的"
docker buildx create --name jenkins-builder --use --bootstrap
fi
echo ""
echo "8. 测试简单构建:"
cat > /tmp/test-dockerfile << 'EOF'
FROM hello-world
LABEL test=true
EOF
if docker buildx build --platform linux/amd64 --load -t test-build -f /tmp/test-dockerfile /tmp; then
echo "✅ 简单构建测试成功"
docker rmi test-build >/dev/null 2>&1
else
echo "❌ 简单构建测试失败"
fi
rm -f /tmp/test-dockerfile
echo ""
echo "🏁 测试完成!"