我使用agent {any}定义了一个工作的Jenkins管道。
但我想试着在码头图像上做测试。根据文档,我可以这样做:
pipeline {
agent {
docker { image 'centos/python-27-centos7:latest' }
}
stages {
...
}
}问题是,我的Jenkins实例是脱机的,使用此配置,它将在运行项目时尝试docker pull映像。
但是,我已经将centos/python-27映像加载到了对接程序中(使用docker images可以看到,并且可以使用docker run -i -t centos/python-27-centos7 /bin/bash运行)。
我是否可以在Jenkins中配置代理,这样它就不会尝试pull来自Docker的映像?
发布于 2019-04-10 12:39:02
Docker代理有一个alwaysPull标志,可以设置为false或true
agent {
docker {
alwaysPull false
image 'foo/bar'
}
}Jenkins有一个管道语法生成器,可以在这些情况下提供帮助。在左侧的“作业”菜单中,有一个“管道语法”的图标。

在这里,您可以看到一些设置,以帮助您生成管道指令。

发布于 2017-09-20 22:05:24
您可以尝试使用dockerfile代理。如果构建图像所需的所有内容都是本地的,那么您就不必在线。
pipeline {
agent {
dockerfile {
filename "someOtherDockerfile"
label "docker-nodes"
args "-v /tmp:/tmp"
}
}
stages {
...
}您的另一个选项可能是设置一个专用的码头注册中心。https://docs.docker.com/registry/deploying/
发布于 2017-09-20 17:15:38
您应该使用兄弟级,而不是嵌套的容器映像。例如,尝试通过-v /var/run/docker.sock:/var/run/docker.sock将docker守护进程套接字的卷挂载到Jenkins容器。这样,您就可以访问主机系统上可用的映像。
https://stackoverflow.com/questions/46327298
复制相似问题