fix: Fix Jenkinsfile syntax errors and optimize for pre-installed Buildx
Fixes: - Fix missing indentation on line 127 (catch block) - Fix stage indentation issues - Remove automatic Buildx installation since it's pre-installed on server Optimizations: - Use existing Docker Buildx v0.25.0 installation - Preserve buildx builder instance across builds for better performance - Improved builder instance lifecycle management - Better error handling and logging The pipeline should now parse correctly and utilize the manually installed Buildx.
This commit is contained in:
parent
fea1b828ec
commit
269496438a
42
Jenkinsfile
vendored
42
Jenkinsfile
vendored
@ -121,9 +121,9 @@ pipeline {
|
|||||||
-Dsonar.login=${SONAR_TOKEN} \
|
-Dsonar.login=${SONAR_TOKEN} \
|
||||||
-Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
|
-Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
|
||||||
"""
|
"""
|
||||||
|
echo "✅ SonarQube代码扫描完成"
|
||||||
echo "✅ SonarQube代码扫描完成"
|
} catch (Exception e) {
|
||||||
} catch (Exception e) { echo "⚠️ SonarQube扫描失败,继续构建流程: ${e.getMessage()}"
|
echo "⚠️ SonarQube扫描失败,继续构建流程: ${e.getMessage()}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -156,21 +156,18 @@ pipeline {
|
|||||||
sh 'docker image prune -f || true'
|
sh 'docker image prune -f || true'
|
||||||
|
|
||||||
echo "开始构建Docker镜像: ${IMAGE_NAME}:${IMAGE_TAG}"
|
echo "开始构建Docker镜像: ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||||
|
// 启用Docker Buildx并创建构建器
|
||||||
// 启用Docker Buildx并创建构建器
|
|
||||||
sh '''
|
sh '''
|
||||||
# 检查并安装buildx(如果需要)
|
echo "✅ 使用已安装的 Docker Buildx $(docker buildx version)"
|
||||||
if ! docker buildx version; then
|
|
||||||
echo "Installing Docker Buildx..."
|
|
||||||
DOCKER_BUILDX_VERSION=v0.12.1
|
|
||||||
curl -L https://github.com/docker/buildx/releases/download/${DOCKER_BUILDX_VERSION}/buildx-${DOCKER_BUILDX_VERSION}.linux-amd64 -o docker-buildx
|
|
||||||
chmod +x docker-buildx
|
|
||||||
mkdir -p ~/.docker/cli-plugins
|
|
||||||
mv docker-buildx ~/.docker/cli-plugins/
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 创建并使用新的构建器实例
|
# 创建并使用新的构建器实例(如果不存在)
|
||||||
docker buildx create --name jenkins-builder --use --bootstrap || docker buildx use jenkins-builder
|
if ! docker buildx inspect jenkins-builder >/dev/null 2>&1; then
|
||||||
|
echo "创建新的构建器实例..."
|
||||||
|
docker buildx create --name jenkins-builder --use --bootstrap
|
||||||
|
else
|
||||||
|
echo "使用现有构建器实例..."
|
||||||
|
docker buildx use jenkins-builder
|
||||||
|
fi
|
||||||
|
|
||||||
# 验证构建器状态
|
# 验证构建器状态
|
||||||
docker buildx inspect --bootstrap
|
docker buildx inspect --bootstrap
|
||||||
@ -423,14 +420,13 @@ EOF
|
|||||||
echo message
|
echo message
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
unstable {
|
||||||
unstable {
|
|
||||||
echo '⚠️ 构建不稳定,可能存在测试失败'
|
echo '⚠️ 构建不稳定,可能存在测试失败'
|
||||||
}
|
}
|
||||||
cleanup {
|
|
||||||
|
cleanup {
|
||||||
script {
|
script {
|
||||||
try {
|
try { // 清理Docker构建缓存(防止磁盘空间不足)
|
||||||
// 清理Docker构建缓存(防止磁盘空间不足)
|
|
||||||
sh '''
|
sh '''
|
||||||
# 清理buildx缓存
|
# 清理buildx缓存
|
||||||
rm -rf /tmp/.buildx-cache* || true
|
rm -rf /tmp/.buildx-cache* || true
|
||||||
@ -438,8 +434,8 @@ EOF
|
|||||||
# 清理未使用的Docker资源
|
# 清理未使用的Docker资源
|
||||||
docker system prune -f || true
|
docker system prune -f || true
|
||||||
|
|
||||||
# 移除构建器(如果存在)
|
# 保留构建器实例以提高后续构建速度
|
||||||
docker buildx rm jenkins-builder || true
|
echo "保留构建器实例jenkins-builder以优化后续构建"
|
||||||
'''
|
'''
|
||||||
|
|
||||||
// 清理工作空间
|
// 清理工作空间
|
||||||
|
Loading…
x
Reference in New Issue
Block a user