在jenkins maven項目中,我們可以使用BUILD_ID=DontKillMe
來阻止hudson腳本關閉shell調用。如何在jenkins管道中使用Jenkinsfile部署Java war文件
像:BUILD_ID=DontKillMe java -jar target.jar
但添加BUILD_ID
不Jenkinsfile
工作。
Jenkinsfile:
哈德森腳本執行#!/usr/bin/env groovy
node {
stage('Build') {
checkout scm
sh '/opt/gradle/gradle-4.1/bin/gradle clean build'
}
stage('Deploy') {
sh 'mkdir -p /opt/www/foobar'
sh 'cp build/libs/*.war /opt/www/foobar/newest.war'
sh 'chmod 755 ./deploy.sh'
sh 'nohup ./deploy.sh &'
sh 'while ! httping -qc1 http://localhost:10000 ; do sleep 1 ; done'
}
}
後,全部由哈德森腳本調用炮彈將被關閉。 即使是雙重nohup
仍然無法正常工作。
deploy.sh:
#!/bin/bash
nohup java -jar -Dspring.profiles.active=prod /opt/www/foobar/newest.war /var/log/foobar.log 2>&1 &
它在管道的'Jenkinsfile'構建腳本中沒用。 –
@SuCheung它應該工作。但它似乎有一個錯誤,當它在某些操作系統上不起作用時https://issues.jenkins-ci.org/browse/JENKINS-46481 –
瞭解,但我總是覺得'BUILD_ID = dontKillMe'很髒。 –