私はGitLabをランナーとDINDと共に使用しています。ドッカーDINDがプライベートレジストリにアクセスできない
構成の詳細:余談として
---------------------------------------
docker run --privileged --name gitlab-dind -d --restart=always docker:17.07-dind
---------------------------------------
cat gitlab_runner.sh
docker run -d --name gitlab-runner --restart always \
-v /mnt/data/gitlab/gitlab-runner:/etc/gitlab-runner \
--link gitlab-dind:docker \
gitlab/gitlab-runner:v9.5.0
---------------------------------------
cat /mnt/data/gitlab/gitlab-runner/config.toml
concurrent = 1
check_interval = 0
[[runners]]
name = "RunnerA"
url = "https://gitlab.dev.abc.net"
token = "d8ed43a69ebed74ccab2493857d8cb"
executor = "docker"
[runners.docker]
tls_verify = false
image = "docker:17.07"
privileged = false
disable_cache = false
volumes = ["/cache"]
host = "tcp://gitlab-dind:2375"
shm_size = 0
[runners.cache]
---------------------------------------
cat ~/wksp/test-proj/.gitlab-ci.yml
image: docker.artifactory.abc.net/docker:17.07
variables:
DOCKER_HOST: tcp://docker:2375
# This before_script block was added later but it seems this block
# isn't executed before the DIND tries fetching image from Artifactory
before_script:
- docker login -u svc-art-user -p some-pwd docker.artifactory.abc.net
- docker info
services:
- docker.artifactory.abc.net/docker:17.07-dind
build:
stage: build
script:
- docker build -t my-docker-node-image .
---------------------------------------
、上記の構成では、DOCKER_HOST
.gitlab-ci.yml
に必要な設定やconfig.toml
で十分でちょうどエントリ(host = "tcp://gitlab-dind:2375
)ですか?
今ランナーが走るとき、私は次のエラーを取得する:
Runner log error:
Running with gitlab-ci-multi-runner 9.5.0 (413da38)
on RunnerA (d8ed43a6)
Using Docker executor with image docker.artifactory.abc.net/docker:17.07 ...
Starting service docker.artifactory.abc.net/docker:17.07-dind ...
Pulling docker image docker.artifactory.abc.net/docker:17.07-dind ...
ERROR: Preparation failed: Error response from daemon: Get https://docker.artifactory.abc.net/v2/: x509: certificate signed by unknown authority
私は間違っているかもしれないが、サービスアカウント(svc-art-user
が)前にログインすることができないため、このエラーがあるようです DINDイメージのプルが発生します。
お返事ありがとうございます。申し訳ありませんが、私はすでにこれを試したことに言及するのを忘れました。私はconfig.jsonの内容をコピーしました(ホスト上で 'docker login -u svc-art-user -p some-pwd docker.artifactory.abc.net'コマンドを実行した後に生成されました)_as is_は'私のプロジェクト設定の「秘密変数」セクションにあります。それでもエラーは解決しません。私はコンテナを再起動する必要はないと思う。すべての(GitLab、Runner&DIND)コンテナは1つのホスト上で実行されています。 – Technext
起動時または実行時にこの変数を受け取ったかどうかわからないため、Gitlabランナーを再起動してください –
ランナーとドッカーの両方を再起動しても問題は解決しません。 : – Technext