我正在通過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文件創建了一個新帳戶,瞧,碼頭推送工作!感謝您的提醒! –