gitlab runner использует неправильный образ докера для контейнера сборки

Я установил gitlab-ci-multi-runner на своей виртуальной машине.
В процессе сборки я предоставляю док-контейнер со всеми зависимостями. Но когда я его запускаю, бегун использует другой (неправильный) образ докера для своего контейнера сборки.
Сообщения выглядят так:

Запуск с gitlab-ci-multi-runner 9.2.1 (f0xxxx4)
на runnerVM (f5xxxxf0)
Использование исполнителя Docker с образом docker.com/xxx/xxx/docker-build:stable ...
Использование образа докера sha256: fe32xxx ... xxxa63c для предопределенного контейнера ...
Получение образа докера docker.com/xxx/xxx/docker-build:stable ...
Использование докера image docker.com/xxx/xxx/docker-build:stable ID = sha256: 9608xxx ... xxxdf09 для контейнера сборки ...

Может ли кто-нибудь сказать мне, почему бегун использует другой образ докера для контейнера сборки?
Почему он не использует предопределенный контейнер (потому что это правильный ...)

Здесь вы можете увидеть мой gitlab-ci.yml:

image: docker.com/xxx/xxx/docker-build:stable

before_script:
  - echo "Before script"


after_script:
  - echo "After Script"

stages:
  - build
  - test
  - deploy

build_release:
  stage: build
  script:
    - sudo make all BUILD_TYPE=Release
  only:
    - master
  tags:
    - tag1

build_debug:
  stage: build
  script:
    - sudo make all BUILD_TYPE=Debug
  only:
    - develop
    - runner-test
  tags:
    - tag1
    - tag2

person npit    schedule 15.09.2017    source источник
comment
Опубликуйте свой gitlab ci yaml   -  person Tarun Lalwani    schedule 15.09.2017


Ответы (2)


В вашем .gitlab-ci.yml вы ссылаетесь на полный URL-адрес вашего контейнера; однако он должен быть в формате group/container, например library/nginx.

При желании вы можете использовать определенную версию, например library/nginx:1.13.9.

Для получения дополнительной информации см. https://docs.gitlab.com/ce/ci/docker/using_docker_images.html

person Philipp Ludwig    schedule 27.02.2018

Я предполагаю, что вы используете исполнитель docker. Поэтому gitlab-ci-runner создает новый образ gitlab/gitlab-runner-helper, который будет изолировать этапы сборки от docker-среды вашей виртуальной машины. Это изображение должно быть предопределенным контейнером.

Сами этапы будут выполняться внутри контейнеров изображений, которые вы укажете для задания, или изображения, которое вы укажете глобально для всех заданий. Этот контейнер является контейнером сборки.

Контейнер сборки должен быть создан из образа, который вы указали с помощью image поверх вашего .gitlab-ci.yml. Вы можете проверить это, выполнив

$ docker image ls | grep -E '(fe32|9608)'

на вашей виртуальной машине. Он показывает вам имена изображений и теги вашего предопределенного контейнера и контейнера сборки.

person smoebody    schedule 08.03.2018
comment
Означает ли это, что в контейнере сборки должен быть установлен докер, чтобы он мог вытащить образ докера? - person Damian; 10.05.2018
comment
@Damian Нет. Предопределенный контейнер создается из образа с возможностями докеров и выполняет ваши шаги работы с использованием образа сборки. - person smoebody; 11.05.2018