詹金斯中层/Jenkins dind:0.3.1和代理

詹金斯中层/Jenkins dind:0.3.1和代理,jenkins,docker,proxy,mesos,dcos,Jenkins,Docker,Proxy,Mesos,Dcos,全部,, 我正在使用DCO和相关的Jenkins。 我的公司有一个代理任何外部流量。 Jenkins运行正常,可以访问内部网络以及任何外部网络。 如果我设置HTTP代理,我可以让作业在internet上卷曲URL。我可以将此代理作为环境变量传递给mesosphere/jenkins dind:0.3.1容器,但是,在docker模式下处于docker时,我不能运行任何docker pull或docker run 我设法在一个代理盒上重现了这个问题 sudo docker run hello wo

全部,, 我正在使用DCO和相关的Jenkins。 我的公司有一个代理任何外部流量。 Jenkins运行正常,可以访问内部网络以及任何外部网络。 如果我设置HTTP代理,我可以让作业在internet上卷曲URL。我可以将此代理作为环境变量传递给mesosphere/jenkins dind:0.3.1容器,但是,在docker模式下处于docker时,我不能运行任何docker pull或docker run

我设法在一个代理盒上重现了这个问题

sudo docker run hello world

码头工人你好

这个有用!! 然而,sudocker-run-privileged mesosphere/jenkins-dind:0.3.1 wrapper.sh“docker-run hello-world”将失败 docker:拉取映像时出错:Get:x509:证书对FG3K6C3A13800607有效,而不是index.docker.io

这通常表明docker守护进程无权访问代理

您知道如何确保dind能够访问代理设置吗?
Antoine

如果Docker守护程序未经您的注册表验证,但看起来您是针对公共映像运行的,则此错误也可能会出现,因此这不太可能是问题所在

您可以尝试为Jenkins节点创建一个新参数(有关如何设置名为
DOCKER\u EXTRA\u OPTS
:)的环境变量的示例,请参见此处的说明)


在本例中,我们希望执行相同的操作(使用Name
env
),但将Value的内容设置为类似于
HTTP\u PROXY的内容=http://proxy.example.com:80/

看起来您应该能够利用
DOCKER\u EXTRA\u OPTS
您好,我已经尝试过了,但找不到要传递的参数,我试过-e--引擎环境不工作我试过DOCKER\u EXTRA\u OPTS=-e http\u proxy=“”--e https\u proxy=“”--e no\u proxy=“mycompany.com,localhost,127.0.0.1/8,leader.mesos,master.mesos”但不工作不,这是错误的。您需要使用名称
env
和值
HTTP\u PROXY=“mycompanyproxy.com:8080/”
(以及
env
HTTPS\u PROXY=“mycompanyproxy.com:8080/”
等等)为每一个参数创建新参数。