我有一个以以下开头的管道:
pipeline {
agent {
docker {
image 'ubuntu'
}
}
在构建结束时,无论成功还是失败,管道都会以以下内容结束:
$ docker stop --time=1 922fc93c1ff65758270cd2ac9dbdc30549ea8acb000ce5982dfa1fc4a9ed79a0
$ docker rm -f 922fc93c1ff65758270cd2ac9dbdc30549ea8acb000ce5982dfa1fc4a9ed79a0
有没有办法禁用rm -f
步骤。
这是为了调试目的。目前我把 sleep 放在一个很不方便的地方。
最佳答案
感谢@davidxxx 让我找到了解决方案。
他建议的答案不需要共享 docker 套接字。由于我想要一个调试解决方案,所以我想出的方案很好,因为它不会投入生产。 他提供的内容更详细,但更安全。 所以这实际上可以归结为您所需要的。
我的解决方案: 在管道中,与新创建的容器共享套接字
pipeline {
agent {
docker {
image 'ubuntu'
args '-v /var/run/docker.sock:/var/run/docker.sock'
}
}
然后,在作业中,从您正在运行的镜像中创建一个新镜像:
docker commit $(basename $(cat /proc/1/cpuset)) foo
$(basename $(cat/proc/1/cpuset))
获取当前容器的哈希值 here
foo
是新图像的名称
关于docker - 是否可以不删除docker jenkins插件启动的容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60419020/