GitLab-CI:无法 link 到非 运行 容器
GitLab-CI: Cannot link to a non running container
我试图让我的设置与 gitlab-ci 一起工作。我有一个简单的 gitlab-ci.yml file
build_ubuntu:
image: ubuntu:14.04
services:
- rikorose/gcc-cmake:gcc-5
stage: build
script:
- apt-get update
- apt-get install -y python3 build-essential curl
- cmake --version
tags:
- linux
我想安装 ubuntu 14.04 LTS,其中安装了 gcc 和 cmake(apt-get 版本太旧)。如果我在本地使用它(通过 docker --link 命令)一切正常,但是当 gitlab-ci-runner 处理它时我得到以下警告(在我的情况下一个错误)
Running with gitlab-ci-multi-runner 9.2.0 (adfc387)
on xubuntuci1 (19c6d3ce)
Using Docker executor with image ubuntu:14.04 ...
Starting service rikorose/gcc-cmake:gcc-5 ...
Pulling docker image rikorose/gcc-cmake:gcc-5 ...
Using docker image rikorose/gcc-cmake:gcc-5
ID=sha256:ef2ac00b36e638897a2046c954e89ea953cfd5c257bf60103e32880e88299608
for rikorose/gcc-cmake service...
Waiting for services to be up and running...
*** WARNING: Service runner-19c6d3ce-project-54-concurrent-0-rikorose__gcc-
cmake probably didn't start properly.
Error response from daemon: Cannot link to a non running container: /runner-
19c6d3ce-project-54-concurrent-0-rikorose__gcc-cmake AS /runner-19c6d3ce-
project-54-concurrent-0-rikorose__gcc-cmake-wait-for-service/runner-
19c6d3ce-project-54-concurrent-0-rikorose__gcc-cmake
有人知道我该如何解决这个问题吗?
提前致谢
通卡
您必须使用
启动 gitlab-runner 容器
--privileged true
但这还不够。注册后由 gitlab 启动的任何运行器容器也需要特权。所以你需要挂载gitlab-runner
docker exec -it runner /bin/bash
nano /etc/gitlab-runner/config.toml
并将特权标志从 false 更改为 true:
privileged = true
那就解决问题了!
注意:您还可以将 config.toml 作为容器上的卷安装,这样您就不必登录容器即可将特权更改为 true,因为您可以在 [=24= 之前预先配置容器]它。
我试图让我的设置与 gitlab-ci 一起工作。我有一个简单的 gitlab-ci.yml file
build_ubuntu:
image: ubuntu:14.04
services:
- rikorose/gcc-cmake:gcc-5
stage: build
script:
- apt-get update
- apt-get install -y python3 build-essential curl
- cmake --version
tags:
- linux
我想安装 ubuntu 14.04 LTS,其中安装了 gcc 和 cmake(apt-get 版本太旧)。如果我在本地使用它(通过 docker --link 命令)一切正常,但是当 gitlab-ci-runner 处理它时我得到以下警告(在我的情况下一个错误)
Running with gitlab-ci-multi-runner 9.2.0 (adfc387)
on xubuntuci1 (19c6d3ce)
Using Docker executor with image ubuntu:14.04 ...
Starting service rikorose/gcc-cmake:gcc-5 ...
Pulling docker image rikorose/gcc-cmake:gcc-5 ...
Using docker image rikorose/gcc-cmake:gcc-5
ID=sha256:ef2ac00b36e638897a2046c954e89ea953cfd5c257bf60103e32880e88299608
for rikorose/gcc-cmake service...
Waiting for services to be up and running...
*** WARNING: Service runner-19c6d3ce-project-54-concurrent-0-rikorose__gcc-
cmake probably didn't start properly.
Error response from daemon: Cannot link to a non running container: /runner-
19c6d3ce-project-54-concurrent-0-rikorose__gcc-cmake AS /runner-19c6d3ce-
project-54-concurrent-0-rikorose__gcc-cmake-wait-for-service/runner-
19c6d3ce-project-54-concurrent-0-rikorose__gcc-cmake
有人知道我该如何解决这个问题吗?
提前致谢 通卡
您必须使用
启动 gitlab-runner 容器--privileged true
但这还不够。注册后由 gitlab 启动的任何运行器容器也需要特权。所以你需要挂载gitlab-runner
docker exec -it runner /bin/bash
nano /etc/gitlab-runner/config.toml
并将特权标志从 false 更改为 true:
privileged = true
那就解决问题了!
注意:您还可以将 config.toml 作为容器上的卷安装,这样您就不必登录容器即可将特权更改为 true,因为您可以在 [=24= 之前预先配置容器]它。