Jenkins总是从声明式pipe道代理定义中拖出docker镜像

我有一个工作Jenkinspipe道定义agent {any}

但是我想尝试在Docker镜像上运行testing。 根据文件我可以这样做:

 pipeline { agent { docker { image 'centos/python-27-centos7:latest' } } stages { ... } } 

问题是,我的Jenkins实例处于脱机状态,使用此configuration,它将尝试运行项目时, docker pull取图像。

然而,我已经在docker中加载了centos / python-27图像(用docker images ,可以用docker run -i -t centos/python-27-centos7 /bin/bash

有没有什么办法可以在Jenkins中configuration代理,所以它不会试图从Docker Hub中取出镜像?

您可以尝试使用dockerfile代理。 如果您需要构build映像的所有内容都是本地的,那么您不必上网。

 pipeline { agent { dockerfile { filename "someOtherDockerfile" label "docker-nodes" args "-v /tmp:/tmp" } } stages { ... } 

您的其他选项可能设置私人dockerregistry。 https://docs.docker.com/registry/deploying/

你应该兄弟姐妹,而不是嵌套的容器图像。 即尝试通过-v /var/run/docker.sock:/var/run/docker.sock将docker守护程序套接字的容量挂载到Jenkins容器。 这样,您将可以访问主机系统上可用的图像。