jenkinsのmavenプロジェクトでは、BUILD_ID=DontKillMe
を使用して、シェル呼び出しのhudsonスクリプトのシャットダウンを防ぐことができます。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それはうまくいくはずです。しかし、OSによっては動作しないバグがあるようです。https://issues.jenkins-ci.org/browse/JENKINS-46481 –
私はいつも「BUILD_ID = dontKillMe'が汚いと感じています。 –