1

Я создаю изображение докера через jenkins и хочу развернуть его в реестр облачных облаков Google, используя плагин jenkins (шаг построения докеров, плагин Google Auth для регистрации Auth, Google OAuth Плагин учетных данных), используя следующие инструкции: https://wiki.jenkins-ci.org/display/JENKINS/Google+Container+Registry+Auth+PluginJenkins Docker Push to google cloud fail с исключением

У меня есть экземпляр виртуальной машины на GCE, где установлены оба дженкинса и докер. Билд работает нормально, но он терпит неудачу, когда я пытаюсь протолкнуть его в реестр:

 
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 

Я считаю, что если бы это была какая-то область действия из Google VM, я тоже не смог бы это сделать через ssh. Это могут быть переменные пользовательской среды jenkins?

У кого-то есть рабочая конфигурация для аналогичного сценария? Любой, кто знает, что Дженкинс хорошо знает, какая конфигурация может вызвать это?

Кроме того, перед использованием http://127.0.0.1:2375 как докер URL, я имел в unix: ///var/run/docker.sock, и с этой конфигурацией, вместо «127.0.0.1:2375 не HttpResponseExpcetion» У меня не было «локальный: 80 no HttpResponseExpcetion "в журнале, поэтому использование сокета также не является решением.

С уважением, JS

ответ

0

Ошибка связана с провалил связь между Дженкинс и Google Registry. Я предполагаю, что нет проблем с сетевым подключением, так как он вызывает localhost.

[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 credentials, это может быть исключение несанкционированного доступа, в котором вам нужно будет создать учетные данные.

В любом случае проверьте свои журналы и поднимите уровень журнала, чтобы узнать, есть ли какая-то важная информация, которая осталась незамеченной.

+0

Вау, спасибо за хедз-ап! После вашего комментария я включил уровень отладки на докере, и я снова увидел исключение несанкционированного доступа. После этого я дважды проверил свои учетные данные. Они выглядели прекрасно, но я пошел в реестр Google, создал новую учетную запись и загрузил JSON для этой учетной записи. После этого я создал новую учетную запись на jenkins, используя этот JSON-файл и voila, работает докер-пуск! Спасибо за хедз-ап! –