gitlab runner使用错误的docker镜像构建容器

时间:2017-09-15 06:01:55

标签: docker containers gitlab gitlab-ci gitlab-ci-runner

我在我的VM上设置了一个gitlab-ci-multi-runner 在构建过程中,我提供了一个包含所有依赖项的docker容器。 但是当我运行它时,跑步者使用不同的(错误的)泊坞窗图像作为他的构建容器 消息看起来像这样:

  

在runnerVM上使用gitlab-ci-multi-runner 9.2.1(f0xxxx4)运行   (f5xxxxf0)
将Docker执行程序与图像一起使用   docker.com/xxx/xxx/docker-build:stable ...
使用docker image    sha256:fe32xxx ... xxxa63c 用于预定义的容器......
拉动   docker image docker.com/xxx/xxx/docker-build:stable ...
使用   docker 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

2 个答案:

答案 0 :(得分:0)

在您的.gitlab-ci.yml中,您引用了容器的完整网址;然而,它应采用group/container格式,例如library/nginx

您可以选择使用特定版本,例如library/nginx:1.13.9

有关详细信息,请参阅:https://docs.gitlab.com/ce/ci/docker/using_docker_images.html

答案 1 :(得分:0)

我假设您使用的是 docker 执行程序。因此,gitlab-ci-runner正在创建一个新的Image gitlab/gitlab-runner-helper,它将构建步骤与VM的docker-environment隔离开来。此图像应为预定义容器

这些阶段将在您为作业指定的图像容器或您为所有作业全局指定的图像内执行。此容器是构建容器

构建容器应该使用image顶部.gitlab-ci.yml指定的图片制作。您可以通过执行

来验证它
$ docker image ls | grep -E '(fe32|9608)'
在您的VM上

。它会显示预定义和构建容器的图像名称和标记。