2016-12-04 41 views
1

全部, 我正在使用DCOS和關聯的Jenkins。 我的公司正在代理任何外部流量。 詹金斯運行正常,可以訪問內部網絡以及任何外部網絡。 如果我設置了HTTP代理,我可以在互聯網上找到工作來捲曲URL。我可以將這個代理傳遞給mesosphere/jenkins-dind:0.3.1容器作爲環境變量,但是我不能在碼頭工模式下運行docker pull或docker run。Jenkins mesosphere/jenkins-dind:0.3.1和代理

我設法在其中一個代理框上重現問題。

sudo docker run hello-world

您好,來自Docker!

這工程! 但是,sudo docker run --privileged mesosphere/jenkins-dind:0.3.1 wrapper.sh「docker run hello-world」將會失敗 docker:拉取圖片時出錯:獲取https://index.docker.io/v1/repositories/library/hello-world/images:x509:證書對於FG3K6C3A13800607有效,不是index.docker.io。

這通常表明docker守護進程無法訪問代理。

你知道如何確保dind訪問代理設置嗎? Antoine

+0

它看起來像你應該能夠利用'DOCKER_EXTRA_OPTS'的優勢https://github.com/mesosphere/jenkins-dind-agent/blob/master/wrapper.sh#L5 – Aaron

+0

你好我已經試過這個,我找不到要傳遞的參數,我試過-e; --engine-env並且不起作用 –

回答

1

如果Docker守護進程未對您的註冊表進行身份驗證,但它看起來像您正在針對公共映像運行,則此錯誤也可能會出現,因此這可能不是問題。

您可以嘗試爲Jenkins節點創建新參數(有關如何設置名爲DOCKER_EXTRA_OPTS的環境變量的示例,請參閱此處的說明:https://docs.mesosphere.com/1.8/usage/service-guides/jenkins/advanced-configuration/)。

在這種情況下,我們希望這樣做(使用名稱env),但將Value的內容設置爲HTTP_PROXY=http://proxy.example.com:80/之類的內容。

+0

我試過DOCKER_EXTRA_OPTS = -e http_proxy =「http://mycompanyproxy.com:8080/」--e https_proxy =「http://mycompanyproxy.com:8080/」 - -e no_proxy =「mycompany.com,localhost,127.0.0.1/8,leader.mesos,master.mesos」,它不起作用 –

+0

不,這是不正確的。您需要爲名稱'env'和值'HTTP_PROXY =「mycompanyproxy.com:8080/」'(以及'env'和'HTTPS_PROXY =「mycompanyproxy.com:8080/」''和等等)。 – ssk2

+0

這工作,謝謝! –