【发布时间】:2017-01-23 07:55:00
【问题描述】:
我正在通过 jenkins 构建一个 docker 映像,并希望使用 jenkins 插件(docker-build-step、Google Container Registry Auth Plugin、Google OAuth Credentials 插件)将其部署到谷歌云注册表,使用以下说明:@ 987654321@
我在 GCE 上有一个 VM 实例,我安装了 jenkins 和 docker。 构建工作正常,但是当我尝试将其推送到注册表时它失败了:
成功搭建c2ddc81c66d1 [Docker] INFO: 成功创建镜像 eu.gcr.io/$project-id/base [Docker] 信息:推送图像 eu.gcr.io/$project-id/base 错误:构建步骤失败并出现异常 javax.ws.rs.ProcessingException: org.apache.http.NoHttpResponseException: 127.0.0.1:2375 未能响应 在 org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:513) 在 org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:246) 在 org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:667) 在 org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:664) 在 org.glassfish.jersey.internal.Errors.process(Errors.java:315) 在 org.glassfish.jersey.internal.Errors.process(Errors.java:297)--
但是当我尝试通过 SSH 推送它时,它可以工作:
bash-4.2$ whoami 詹金斯 bash-4.2$ gcloud docker push eu.gcr.io/$project-id/base 推送指的是存储库 [eu.gcr.io/$project-id/base] 41772e41ab05:层已存在 a03f60753e4e:推送 [=========> ] 9.223 MB/47.44 MB我相信,如果它是来自 google VM 的某种范围,我也不应该能够通过 ssh 来做到这一点。会不会是jenkins用户环境变量?
谁有类似场景的工作配置?任何了解 Jenkins 的人都知道什么样的配置可能导致这种情况?
另外,在使用http://127.0.0.1:2375 作为 docker url 之前,我有 unix:///var/run/docker.sock,并且使用该配置,而不是“127.0.0.1:2375 no HttpResponseExpcetion”我有“localhost :80 no HttpResponseExpcetion" 在日志中,所以使用套接字也不是解决方案。
问候, JS
【问题讨论】:
标签: jenkins docker push google-cloud-platform docker-registry