2016-09-15 104 views
1

我正在通过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

回答

0

误差与有关失败詹金斯和谷歌注册之间的连接。我假设网络连接没有问题,因为它调用本地主机。

[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 

因此,这给我们留下了一个应用问题。请检查您的Google oAuth凭据,它可能是未经授权的访问异常被投掷,您必须在其中创建凭据。

无论如何,请检查您的日志并提升日志级别以查看是否有任何重要信息未被注意。

+0

哇,谢谢你的提醒!在您的评论之后,我启用了docker上的调试级别,并再次发现未经授权的访问异常。之后我再次检查我的凭证。他们似乎很好,但我去了谷歌注册表,创建了一个新的帐户,并为该帐户下载了一个JSON。 在此之后,我在jenkins上使用该JSON文件创建了一个新帐户,瞧,码头推送工作!感谢您的提醒! –

相关问题