一千萬個為什麽

搜索

如何配置gitlab-runner在gitlab中運行在同一個docker主機上?



我有一個在Docker容器中運行的gitlab實例。現在我想在同一臺主機上設置gitlab-runner。兩者都在運行:

docker container ls
CONTAINER ID        IMAGE                         COMMAND                  CREATED              STATUS                 PORTS                                                            NAMES
279473dceb2f        gitlab/gitlab-runner:alpine   "/usr/bin/dumb-ini..."   About a minute ago   Up About a minute                                                                       gitlab-runner
6d7af0d6b946        gitlab/gitlab-ce:latest       "/assets/wrapper"        2 hours ago          Up 2 hours (healthy)   0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:8022->22/tcp   gitlab

我註冊了一個docker鏡像作為共享運行者:

concurrent = 1
check_interval = 0

[[runners]]
  name = "default shared maven runner"
  url = "http://url-of-my-gitlab.instance"
  token = "valid token"
  executor = "docker"
  [runners.docker]
    pull_policy = "never"
    tls_verify = false
    image = "maven-java-8:latest"
    privileged = false
    disable_cache = false
    volumes = ["/cache"]
    shm_size = 0
  [runners.cache]

註冊的圖像 maven-java-8 是一個具有正確settings.xml的自定義圖像,它在 docker images 中列出。

但是管道仍然失敗:

Running with gitlab-ci-multi-runner 9.3.0 (3df822b)
  on Maven Test (5b2573e4)
Using Docker executor with image maven-java-8 ...
Using docker image  sha256:c266311d78b33f89f6eecce00f19a0428e37ba6af6734c8fced32fa11e4bd4ba for predefined container...
Pulling docker image maven-java-8 ...
ERROR: Job failed: Error response from daemon: repository maven-java-8 not found: does not exist or no pull access

我將其解釋為它試圖使用gitlab-runner容器內的本地圖像。

GitLab版本是gitlab-ce 9.2.7,運行版本是v9.3.0。

我的.gitlab-cy.yml的內容是:

test:
  script:
    - mvn clean test

我錯過了什麽?

轉載註明原文: 如何配置gitlab-runner在gitlab中運行在同一個docker主機上?

一共有 1 個回答:

管理摘要

調用 [runners.docker] 部分,將 pull_policy 設置為“never”

docker exec -it gitlab-runner \
  vi /etc/gitlab-runner/config.toml

詳細說明

這似乎是問題與圖像和裝入卷的混淆。

該文件說在配置跑步者:

/etc/gitlab-runner/config.toml

我做了,但在主機上。 在Docker容器中運行 gitlab-runner 時,它會掛載一個卷:

... -v /srv/gitlab-runner/config:/etc/gitlab-runner ...

這意味著,容器中 /etc/...中的配置文件在主機上安裝到/srv /...

在這個文件中, pull_policy 未被設置,默認為始終,最終導致我的問題。