jenkinsdockerpipe道退出代码-1

我们有一个使用docker插件在给定容器内运行脚本的Jenkinsfile。 这对一些图像工作正常,但立即失败,其他-1退出代码。 我们已经把错误降低到简单的sleep 。 这是Jenkinsfile:

 node("docker") { def wheezy_image = docker.image("pyca/cryptography-runner-wheezy") wheezy_image.pull() wheezy_image.inside { sh """sleep 120""" } } 

这里是jenkins的输出

 + docker pull pyca/cryptography-runner-wheezy Using default tag: latest latest: Pulling from pyca/cryptography-runner-wheezy Digest: sha256:ff5d9f661b05d831ace3811eec9f034fed7994279ff2307695a2cb7c32d6fa11 Status: Image is up to date for pyca/cryptography-runner-wheezy:latest [Pipeline] sh [3525-VE2ETALXLYB7VN3] Running shell script + docker inspect -f . pyca/cryptography-runner-wheezy . [Pipeline] withDockerContainer $ docker run -t -d -u 1000:1000 -w /var/jenkins_home/workspace/3525-VE2ETALXLYB7VN3 --volumes-from 1382a2e208dd5575acd26f11678855282fc854319096de60cef6818ea279f25f -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** --entrypoint cat pyca/cryptography-runner-wheezy [Pipeline] { [Pipeline] sh [3525-VE2ETALXLYB7VN3] Running shell script + sleep 120 [Pipeline] } $ docker stop --time=1 887db8989e03a10dd89132b1ac6e18261ee4a49e6afe8b0c5568326b6c023654 $ docker rm -f 887db8989e03a10dd89132b1ac6e18261ee4a49e6afe8b0c5568326b6c023654 [Pipeline] // withDockerContainer [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline GitHub has been notified of this commit's build result ERROR: script returned exit code -1 Finished: FAILURE 

有趣的是,如果睡眠时间less于1秒,那么就会通过(但是在其他许多图像上120秒的睡眠效果很好)。

作为参考,这是一个杰西形象的作品,和一个喘息的形象 ,没有。

有人知道这里可能会发生什么吗?

看起来与你的图像没有ps安装。 我只是拿了debian的基地,并能够复制,它不会工作。 安装了ps,它确实工作。 你也可以使用withRun函数,它的工作原理。 这是我的Jenkinsfile:

 node("docker") { // Weezy that also ran... apt-get update && apt-get install -y procps def wheezy_image = docker.image("smalone/weezy-ps-test") wheezy_image.pull() wheezy_image.inside { sh 'sleep 2' } // Base image for weezy-ps-test that has no ps installed using withRun() instead of inside() wheezy_image = docker.image("debian:wheezy") wheezy_image.pull() wheezy_image.withRun { c -> sh 'sleep 2' } // Base image for weezy-ps-test that has no ps installed wheezy_image = docker.image("debian:wheezy") wheezy_image.pull() wheezy_image.inside { sh 'sleep 2' } } 

如果不存在,我将在Dockerpipe道插件上打开一张票。

编辑:有一张票打开,但他们还没有find根本原因呢。 请参阅: https : //issues.jenkins-ci.org/browse/JENKINS-40101来跟踪此问题的状态!