【问题标题】:Jenkins Docker Push to google cloud fails with an exceptionJenkins Docker 推送到谷歌云失败并出现异常
【发布时间】: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


    【解决方案1】:

    该错误与 Jenkins 和 Google Registry 之间的连接失败有关。我假设网络连接没有问题,因为它正在调用本地主机。

    [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 凭据,这可能是引发了未经授权的访问异常,您必须在其中创建凭据。

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

    【讨论】:

    • 哇,感谢您的提醒!在您发表评论后,我在 docker 上启用了调试级别,我再次看到了未经授权的访问异常。在此之后,我仔细检查了我的凭据。他们看起来不错,但我去了谷歌注册表,创建了一个新帐户并为该帐户下载了一个 JSON。在此之后,我使用该 JSON 文件在 jenkins 上创建了一个新帐户,瞧,docker push 起作用了!感谢您的提醒!
    猜你喜欢
    • 1970-01-01
    • 2018-02-24
    • 2021-07-23
    • 2021-12-22
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2020-04-10
    相关资源
    最近更新 更多