我有一个在Ubuntu 16.04.2 x64上运行的jenkins服务器,但是最近执行Shell脚本时,作业开始随机失败。我可以在服务器上手动执行脚本,并且可以运行,但是当jenkins执行时,由于以下原因,脚本将失败:
失败1
JavaProcess leaked file descriptors. See https://jenkins.io/redirect/troubleshooting/process-leaked-file-descriptors for more information
Build step 'Execute shell' marked build as failure
失败2
# gradle script that downloads some jars..
Download https://jcenter.bintray.com/org/pegdown/pegdown/1.6.0/pegdown-1.6.0.jar
Build step 'Execute shell' marked build as failure
Skipped archiving because build is not successful
无法在失败2 中下载失败的 jar 并不总是相同的。
我试图将 Jenkins 更新到最新版本(2.164.2),但仍然存在相同的问题。
我已经尝试过提到的解决方案
Process leaked file descriptors error on JENKINS
对于失败1 ,但没有成功,仍然以相同的方式失败。
更新1
我已经在我的shell脚本中将此问题本地化为这一部分:
# Run script in docker container
chmod +x tmp.sh
docker run --entrypoint=/bin/bash -v $(pwd):/src --workdir=/build mydocker/myimage -c "/src/tmp.sh"
rm -f tmp.sh
因此,当docker通过Jenkins“Execute shell”执行tmp.sh时,它会随机失败。
从docker
journalctl -u docker.service
登录May 21 10:33:23 jenkins dockerd[1332]: time="2019-05-21T10:33:23.886024261Z" level=error msg="attach: stdout: write unix /var/run/docker.sock->@: write: broken pipe"
May 21 10:33:25 jenkins dockerd[1332]: time="2019-05-21T10:33:25.186663914Z" level=error msg="attach: stderr: write unix /var/run/docker.sock->@: write: broken pipe"
May 21 10:33:25 jenkins dockerd[1332]: time="2019-05-21T10:33:25.186715731Z" level=error msg="attach failed with error: write unix /var/run/docker.sock->@: write: broken pipe"
从Docker容器
docker container logs cranky_cori
登录BUILD SUCCESSFUL
Total time: 38.273 secs
This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.14/userguide/gradle_daemon.html
结论
到stdout的管道和stderr损坏,jenkins将其报告为构建失败,但是docker容器日志显示docker继续执行并成功完成了gradle脚本。
最佳答案
在未成功找到问题原因之后,尽管我升级了操作系统,但是我还是很幸运!
配置不起作用
Ubuntu 16.04.2 x64
----------------------------
- Docker version 17.03.1-ce
- Jenkins 2.64.2
NOR
- Docker version 18.09.6
- Jenkins 2.64.2
- Jenkins 2.64.3
升级Ubuntu后,这对我有用
Ubuntu 18.04.2 LTS
----------------------------
- Docker version 18.09.6
- Jenkins 2.64.3
关于docker - 在Jenkins上执行Shell脚本时,作业随机失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56146414/