Создание образов докеров с помощью Jib и Gitlab-CI - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь создать конвейер, в котором образы докеров создаются с использованием JIB (через плагин Maven) и помещаются в мой реестр Gitlab.

Это прекрасно работает локально, когда я вошел в свой реестр докеров.

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>1.0.0</version>
    <configuration>
        <allowInsecureRegistries>true</allowInsecureRegistries>
        <from>
            <image>dockerhost/projectgroup/alpine</image>
        </from>
        <to>
            <image>dockerhost/project/imagename:${project.version}</image>
        </to>
        <container>
            <useCurrentTimestamp>true</useCurrentTimestamp>
        </container>
    </configuration>
</plugin>

Допустим, у меня есть файл .gitlab-ci.yml, который выглядит следующим образом:

stages:
  - build_image

build_image:
  stage: build_image
tags:
  - dev
script: |
  mvn compile jib:build

Теперь я получаю исключение при запуске конвейера

Build image failed: Failed to authenticate with registry dockerhost/projectgroup/alpine because: peer not authenticated

Я предполагаю, что получаю эту ошибку, потому что я не запустил вход в Docker -u [имя пользователя] -p [пароль / токен]

Как бы мне ни понадобился .gitlab-ci.yml, который используетОбраз docker-in-docker, позволяющий запустить вход в Docker в моем скрипте?

Есть ли альтернатива использованию образа docker-in-docker для создания этого образа на моем Gitlab CI?

1 Ответ

0 голосов
/ 14 февраля 2019

https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#authentication-methods вызывает с помощью либо помощников по учетным данным, либо размещает кредиты непосредственно в настройках maven.Несмотря на то, что они называются «помощниками по учетным данным докера», я не думаю, что эти помощники по учету учетных данных на самом деле используют демон докера, скорее, они просто хранят кредиты с использованием соответствующего собственного хранилища и передают его в Jib, когда JIB должен аутентифицироваться, чтобы протолкнуть изображениев Docker API-совместимый реестр.

https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#quickstart Различает сборку для демона Docker от сборки до реестра, поэтому я предполагаю, что если вы строите в реестр, вам не нужен доступный демон, а это значит, что вам просто нужно изображениеэто способно управлять Maven.

Конечно, это такой неясный, непроверенный совет, который привел вас сюда в первую очередь, верно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...