java_demo/scripts/verify-buildx.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

63 lines
1.7 KiB
Bash

#!/bin/bash
echo "==============================================="
echo "🔍 Docker Buildx 环境验证脚本"
echo "==============================================="
# 检查Docker版本
echo "📋 Docker版本:"
docker --version
# 检查Buildx版本
echo ""
echo "📋 Docker Buildx版本:"
docker buildx version
# 检查当前构建器
echo ""
echo "📋 当前构建器列表:"
docker buildx ls
# 检查是否存在jenkins-builder
echo ""
echo "📋 检查jenkins-builder构建器:"
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
echo "✅ jenkins-builder 构建器创建完成"
fi
# 检查BuildKit功能
echo ""
echo "📋 测试Buildx功能:"
echo "FROM alpine:latest" > /tmp/test.dockerfile
echo "RUN echo 'Hello BuildKit!'" >> /tmp/test.dockerfile
if docker buildx build -f /tmp/test.dockerfile -t buildx-test . >/dev/null 2>&1; then
echo "✅ Buildx构建测试成功"
docker rmi buildx-test >/dev/null 2>&1
else
echo "❌ Buildx构建测试失败"
fi
# 清理测试文件
rm -f /tmp/test.dockerfile
# 检查缓存目录
echo ""
echo "📋 缓存目录状态:"
if [ -d "/tmp/.buildx-cache" ]; then
cache_size=$(du -sh /tmp/.buildx-cache 2>/dev/null | cut -f1)
echo "✅ 缓存目录存在,大小: $cache_size"
else
echo "📁 缓存目录不存在(正常,首次构建会创建)"
fi
echo ""
echo "==============================================="
echo "✅ Docker Buildx 环境验证完成"
echo "==============================================="