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 ...
Използване на докер изображение docker.com/xxx/xxx/docker-build:stable ID=sha256:9608xxx...xxxdf09 за контейнер за компилация...

Може ли някой да ми каже защо runner използва различно изображение на докер за контейнер за изграждане?
Защо не взема предварително дефинирания контейнер (защото това е правилният...)

Тук можете да видите моя 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, което ще изолира стъпките за компилиране от докер средата на вашата виртуална машина. Това изображение ще бъде предварително зададеният контейнер.

Самите етапи ще се изпълняват вътре в контейнери с изображения, които сте посочили за заданието, или изображението, което сте посочили глобално за всички задания. Този контейнер е контейнер за компилация.

Контейнерът за компилация трябва да бъде направен от изображението, което сте посочили с 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