2017-06-21 10 views
2

私はDocker Pipeline Pluginを使ってDockerコンテナ経由でビルドスクリプトを実行しています。私は、inside()コマンド内で実行するときにスクリプトがゼロ以外の終了コードを返した場合、Jenkinsはパイプラインの実行を失敗としてマークすることに気付きました。私はwithRun()コマンドを使用している場合、同様のJenkinsfileはない原因ビルドがdocker ps -lコマンドは、コンテナが非で終了することを示しているにもかかわらず、失敗するだろう、しかしDocker Pipeline Plugin withRunコマンドがゼロ以外の終了コードを返す場合、Jenkinsビルドに失敗するにはどうすればよいですか?

docker.image('alpine').inside() { 
    sh 'exit 1' 
} 

:この例Jenkinsfileは、そのシナリオを示していますゼロの状態:

node() { 
    sh 'touch ./test.sh' 
    sh 'echo "exit 1" >> ./test.sh' 
    sh 'chmod 755 ./test.sh' 

    docker.image('alpine').withRun("-v ${WORKSPACE}:/newDir", '/bin/sh /newDir/test.sh') {container -> 
    sh "docker logs ${container.id} -f" 
    sh 'docker ps -l' 
    } 
} 

withRun()がゼロ以外のコードでコンテナが終了した場合、ビルドを失敗にする方法はありますか?

答えて

1

私はwithRun()コマンドからの終了コード上の任意のより多くの情報を見つけることができませんでしたので、私はちょうどshステップからdocker runのコマンドを実行してしまった:

node() { 
    sh 'touch ./test.sh' 
    sh 'echo "exit 1" >> ./test.sh' 
    sh 'chmod 755 ./test.sh' 
    sh "docker run --rm -v ${WORKSPACE}:/newDir alpine /bin/sh /newDir/test.sh" 
} 
関連する問題