Docker tabanlı bir Gitlab CI runner oluşturmak istiyorum; bu, yapımcı için docker resimlerini özel bir Docker Kayıt Defterinden (v2) çekiyor. Gitlab Runner'ı görüntüyü yerel bir kayıt defterinden çekmek için yapamam, /v1
API'sinden bir şey almayı deniyor.Gitlab CI, özel docker kayıt defterinden resim çekemiyor
ERROR: Build failed: Error while pulling image: Get http://registry:5000/v1/repositories/maven/images : dial tcp: lookup registry on 127.0.1.1:53: no such host
Burada liman işçisi-oluşturma deneyimini ve bir web tarayıcısı kullanarak, minimal bir örnek: aşağıdaki hata iletisi alıyorum.
aşağıdaki docker-compose.yml
dosyası var:
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
ilk Gitlab Giriş yaptıktan sonra ben Gitlab örneğine koşucu kayıt: Bundan sonra
[email protected]:/# gitlab-runner register
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/ci):
http://192.168.61.237:8080/ci
Please enter the gitlab-ci token for this runner:
tE_1RKnwkfj2HfHCcrZW
Please enter the gitlab-ci description for this runner:
[130d08732613]: docker
Please enter the gitlab-ci tags for this runner (comma separated):
Registering runner... succeeded runner=tE_1RKnw
Please enter the executor: docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine:
docker
Please enter the default Docker image (eg. ruby:2.1):
maven:latest
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
, içeri Gitlab koşucu see my Gitlab örneği:
Bundan sonra benim yeni oluşturulan Docker deposuna basit maven görüntü itmek:
[email protected]:~/$ docker tag maven:3-jdk-7 172.19.0.2:5000/maven:3-jdk7
[email protected]:~/$ docker push 172.19.0.2:5000/maven:3-jdk7
The push refers to a 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
Ben bir test projesi oluşturmak Bundan sonra
(Ben docker inspect
komutun çıkışından 172.19.0.2
IP adresi var) Gitlab ve basit .gitlab-ci.yml
dosyası eklemek:
image: registry:5000/maven:3-jdk-7
stages:
- build
- test
- analyze
maven_build:
stage: build
script:
- "mvn -version"
ve yapı sonra Gitlab yazının başında görülen hatayı veriyor. Aynı hala
[email protected]:~/$ docker exec -it comptest_gitlab_runner_1 bash
[email protected]:/# curl http://registry:5000/v2/maven/tags/list
{"name":"maven","tags":["3-jdk7"]}
[email protected]:/# exit
exit
[email protected]:~/$
Ama hata: Ben çalışan gitlab-koşucu kabın içine girerseniz
, bana verilen URL altında kayıt erişebilir
mi gitlab-runner'ı özel kayıt defterinin v2 API'sini kullanmaya nasıl zorlayacağına dair herhangi bir fikriniz var mı?
Görüntüyü koşucudan çekmeyi denediniz mi? Belki de "harici" IP ile? Görüntüyü ana bilgisayardan çekmeye ne dersin? – Martin
@mgansler Gitlab_runner görüntüsüne girersem ('docker exec -it comptest_gitlab_runner_1 bash') docker komutu yoktur. Ancak kayıt defteri görülüyor, çünkü kayıt defterinin HTTP API'sini curl ile kullanabilirim. –