我正在通过jenkins构建一个码头图像,并且想使用jenkins插件将它部署到Google云注册表中(docker-build-step,Google Container Registry Auth插件,Google OAuth凭证插件),使用以下指令:https://wiki.jenkins-ci.org/display/JENKINS/Google+Container+Registry+Auth+PluginJenkins Docker推送到谷歌云失败,出现异常
我在GCE上有一个VM实例,我安装了jenkins和docker。 构建工程确定,但是当我试图把它推到注册表失败:
Successfully built c2ddc81c66d1 [Docker] INFO: Sucessfully created image eu.gcr.io/$project-id/base [Docker] INFO: Pushing image eu.gcr.io/$project-id/base ERROR: Build step failed with exception javax.ws.rs.ProcessingException: org.apache.http.NoHttpResponseException: 127.0.0.1:2375 failed to respond at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:513) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:246) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:667) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:664) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
-
但是当我尝试通过SSH推它,它的工作原理:
bash-4.2$ whoami jenkins bash-4.2$ gcloud docker push eu.gcr.io/$project-id/base The push refers to a repository [eu.gcr.io/$project-id/base] 41772e41ab05: Layer already exists a03f60753e4e: Pushing [=========> ] 9.223 MB/47.44 MB
我相信,如果它是谷歌虚拟机的某种范围,我不应该能够通过SSH做到这一点。它可能是詹金斯用户环境变量?
任何人都有类似场景的工作配置?任何认识詹金斯的人都知道什么样的配置可能导致这种情况?
此外,在使用http://127.0.0.1:2375作为docker url之前,我使用了unix:///var/run/docker.sock,并且使用该配置,而不是“127.0.0.1:2375 no HttpResponseExpcetion”我有“localhost: 80没有HttpResponseExpcetion“,因此使用套接字也不是解决方案。
问候, JS
哇,谢谢你的提醒!在您的评论之后,我启用了docker上的调试级别,并再次发现未经授权的访问异常。之后我再次检查我的凭证。他们似乎很好,但我去了谷歌注册表,创建了一个新的帐户,并为该帐户下载了一个JSON。 在此之后,我在jenkins上使用该JSON文件创建了一个新帐户,瞧,码头推送工作!感谢您的提醒! –