我在我的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
答案 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上。它会显示预定义和构建容器的图像名称和标记。