Jenkins - 将构建标记为成功
Jenkins - Mark build as success
我使用 Jenkins 构建我的 Maven Java 应用程序,然后创建 Docker 图像并推送它。毕竟我有 try-catch 我尝试停止并删除容器,如果它已经 运行ning - 如果不是它应该跳过它和 运行 新图像 - 它工作但总是标记构建失败。我试图更改构建状态,但显然这是不可能的。
这是我的管道:
node {
stage('Clone repository') {
git branch: 'main', credentialsId: 'realsnack-git', url: 'https://github.com/Realsnack/Java-rest-api.git'
}
stage('Build maven project') {
sh './mvnw clean package'
}
stage('Build docker image') {
sh 'docker build -t 192.168.1.27:49153/java-restapi:latest .'
}
stage('Push image') {
sh 'docker push 192.168.1.27:49153/java-restapi:latest'
}
try {
stage('Remove old container') {
sh 'docker stop java-rest_api && docker rm java-rest_api'
}
} catch(all) {
sh 'No container to remove - runnning it anyway'
} finally {
stage('Run image') {
sh 'docker run -d --name java-rest_api -p 8081:8081 192.168.1.27:49153/java-restapi:latest'
}
}
}
docker stop
如果停止容器失败将失败。
您可以通过以下两种方式之一解决问题:
- 在尝试停止之前检查是否存在 运行 容器:
sh "if [[ docker ps -a | grep java-rest_api ]]; docker stop java-rest_api; fi"
- 忽略docker错误:
sh "docker stop java-rest_api || true"
我使用 Jenkins 构建我的 Maven Java 应用程序,然后创建 Docker 图像并推送它。毕竟我有 try-catch 我尝试停止并删除容器,如果它已经 运行ning - 如果不是它应该跳过它和 运行 新图像 - 它工作但总是标记构建失败。我试图更改构建状态,但显然这是不可能的。
这是我的管道:
node {
stage('Clone repository') {
git branch: 'main', credentialsId: 'realsnack-git', url: 'https://github.com/Realsnack/Java-rest-api.git'
}
stage('Build maven project') {
sh './mvnw clean package'
}
stage('Build docker image') {
sh 'docker build -t 192.168.1.27:49153/java-restapi:latest .'
}
stage('Push image') {
sh 'docker push 192.168.1.27:49153/java-restapi:latest'
}
try {
stage('Remove old container') {
sh 'docker stop java-rest_api && docker rm java-rest_api'
}
} catch(all) {
sh 'No container to remove - runnning it anyway'
} finally {
stage('Run image') {
sh 'docker run -d --name java-rest_api -p 8081:8081 192.168.1.27:49153/java-restapi:latest'
}
}
}
docker stop
如果停止容器失败将失败。
您可以通过以下两种方式之一解决问题:
- 在尝试停止之前检查是否存在 运行 容器:
sh "if [[ docker ps -a | grep java-rest_api ]]; docker stop java-rest_api; fi"
- 忽略docker错误:
sh "docker stop java-rest_api || true"