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