如果一个Dockerpipe道插件withRun命令返回一个非零的退出代码,我如何失败一个Jenkins构build?

我正在使用Dockerpipe道插件通过Docker容器执行我的构build脚本。 我注意到,如果我有一个脚本在inside()命令中执行时返回一个非零的退出代码,Jenkins会将pipe道执行标记为失败。 这个例子Jenkinsfile说明了这种情况:

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

但是,如果使用withRun()命令,即使docker docker ps -l命令显示容器以非零状态退出,类似的Jenkinsfile也不会导致构build失败:

 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()失败的构build,如果容器退出非零代码?

我从withRun()命令找不到更多关于退出代码的信息,所以我最后只是执行sh步骤中的withRun() 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" }