2017-10-02 8 views
0

私は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イメージのプルが発生します。

答えて

0

イメージをプルする必要があるため、Gitlab Runnerに認証の詳細を提供する必要があります。

あなたが

{ 
    "auths": { 
     "docker.artifactory.abc.net": { 
      "auth": "bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=" 
     } 
    } 
} 

以下のように認証の詳細をDOCKER_AUTH_CONFIG秘密変数を作成する必要がありますが、ローカルにドッキングウィンドウにログインし、かつ~/.docker/config.json

ドキュメントはこの

に良い詳細情報を提供してチェックすることで得ることができます。この

https://docs.gitlab.com/ce/ci/docker/using_docker_images.html#define-an-image-from-a-private-docker-registry

https://docs.gitlab.com/runner/configuration/advanced-configuration.html#using-a-private-container-registry

+0

お返事ありがとうございます。申し訳ありませんが、私はすでにこれを試したことに言及するのを忘れました。私はconfig.jsonの内容をコピーしました(ホスト上で 'docker login -u svc-art-user -p some-pwd docker.artifactory.abc.net'コマンドを実行した後に生成されました)_as is_は'私のプロジェクト設定の「秘密変数」セクションにあります。それでもエラーは解決しません。私はコンテナを再起動する必要はないと思う。すべての(GitLab、Runner&DIND)コンテナは1つのホスト上で実行されています。 – Technext

+0

起動時または実行時にこの変数を受け取ったかどうかわからないため、Gitlabランナーを再起動してください –

+0

ランナーとドッカーの両方を再起動しても問題は解決しません。 : – Technext

関連する問題