【发布时间】:2017-05-07 18:50:17
【问题描述】:
我们有一个 Jenkinsfile,它使用 docker 插件在给定容器中运行脚本。这适用于某些图像,但在其他图像上会立即失败,并出现 -1 退出代码。我们已将错误减少到一个简单的sleep。这是 Jenkins 文件:
node("docker") {
def wheezy_image = docker.image("pyca/cryptography-runner-wheezy")
wheezy_image.pull()
wheezy_image.inside {
sh """sleep 120"""
}
}
这是詹金斯的输出
+ 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
有趣的是,如果睡眠时间少于 1 秒,那么它就会过去(但 120 秒的睡眠时间在许多其他图像上都可以正常工作)。
作为参考,这是一个有效的jessie image,一个无效的wheezy image。
有谁知道这里可能发生了什么?
【问题讨论】:
-
我假设一个普通的 wheezy docker 图像(没有 pyca/cryptography-runner-wheezy 添加的东西)没有证明同样的问题?在 docker hub (forums.docker.com/t/how-to-upload-my-dockerfile-to-docker-hub/…) 上没有您的图像的 Dockerfile,所以我懒得看这个。 :)
-
@burnettk 我不知道我们是否已经用光秃秃的喘息进行了测试;
Dockerfile可以在以下位置找到:github.com/pyca/infra/blob/master/runners/wheezy/Dockerfile -
@burnettk 我刚刚测试了拉
debian:wheezy并看到了同样的问题。
标签: docker jenkins jenkins-pipeline