gitlab-runnerをgitlabと同じdockerホストで実行するように構成するにはどうすればよいですか?


7

Doclabコンテナで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

何が欠けていますか?

回答:


5

管理要約

を呼び出して、セクションにpull_policyを設定します。"never"[runners.docker]

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

詳細な説明

問題は、イメージとマウントされたボリュームの混乱であるように思われました。

ドキュメンテーションはランナーを次のように構成するように言っています:

/etc/gitlab-runner/config.toml

私はそうしましたが、ホストマシン上で。gitlab-runnerDockerコンテナーで実行すると、ボリュームがマウントされます。

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

つまり、/etc/...コンテナ内の構成ファイル/srv/...はホストマシンにマウントされます。

このファイルではpull_policyが設定されていません。デフォルトはでalways、最終的に最初に問題が発生した原因です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.