Gitlab CI cannot pull image from private docker registry -


i'd create docker based gitlab ci runner pulls docker images build private docker registry (v2). cannot make gitlab runner pull image local registry, tries /v1 api. following error message:

error: build failed: error while pulling image: http://registry:5000/v1/repositories/maven/images: dial tcp: lookup registry on 127.0.1.1:53: no such host

here's minimal example, using docker-compose , web browser.

i have following docker-compose.yml file:

version: "2"  services:   gitlab:     image: gitlab/gitlab-ce     ports:       - "22:22"       - "8080:80"     links:       - registry:registry    gitlab_runner:     image: gitlab/gitlab-runner     volumes:       - /var/run/docker.sock:/var/run/docker.sock     links:       - registry:registry       - gitlab:gitlab    registry:     image: registry:2 

after first gitlab login, register runner gitlab instance:

root@130d08732613:/# gitlab-runner register running in system-mode.                              please enter gitlab-ci coordinator url (e.g. https://gitlab.com/ci): http://192.168.61.237:8080/ci          please enter gitlab-ci token runner: te_1rknwkfj2hfhccrzw please enter gitlab-ci description runner: [130d08732613]: docker please enter gitlab-ci tags runner (comma separated):  registering runner... succeeded                     runner=te_1rknw please enter executor: docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine: docker please enter default docker image (eg. ruby:2.1): maven:latest runner registered successfully. feel free start it, if it's running config should automatically reloaded! 

after this, see gitlab runner in gitlab instance:

gitlab runner in gitlab instance

after push simple maven image newly created docker repository:

vilmosnagy@vnagy-dell:~/$ docker tag maven:3-jdk-7 172.19.0.2:5000/maven:3-jdk7 vilmosnagy@vnagy-dell:~/$ docker push 172.19.0.2:5000/maven:3-jdk7  push refers repository [172.19.0.2:5000/maven] 79ab7e0adb89: pushed  f831784a6a81: pushed  b5fc1e09eaa7: pushed  446c0d4b63e5: pushed  338cb8e0e9ed: pushed  d1c800db26c7: pushed  42755cf4ee95: pushed  3-jdk7: digest: sha256:135e7324ccfc7a360c7641ae20719b068f257647231d037960ae5c4ead0c3771 size: 1794 

(i got 172.19.0.2 ip-address docker inspect command's output)

after create test project in gitlab , add simple .gitlab-ci.yml file:

image: registry:5000/maven:3-jdk-7  stages:   - build   - test   - analyze  maven_build:   stage: build   script:     - "mvn -version" 

and after build gitlab gives error in seen in beginning of post.

if enter running gitlab-runner container, can access registry under given url:

vilmosnagy@vnagy-dell:~/$ docker exec -it comptest_gitlab_runner_1 bash root@c0c5cebcc06f:/# curl http://registry:5000/v2/maven/tags/list {"name":"maven","tags":["3-jdk7"]} root@c0c5cebcc06f:/# exit exit vilmosnagy@vnagy-dell:~/$ 

but error still same:

gitlab runner in gitlab instance

do have idea how force gitlab-runner use v2 api of private registry?

newer gitlab , gitlan runners support this, see: https://docs.gitlab.com/runner/configuration/advanced-configuration.html#using-a-private-container-registry

on older gitlab i've solved copying auth key ~/.docker/config.json

{         "auths": {                 "my.docker.registry.url": {                         "auth": "dmlsbw9zlm5hz3k6vgzwntm2wmhc"                 }         } } 

i've logged container computer , copied auth key gitlab runner's docker container.


Comments