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:
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:
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
Post a Comment