2016-07-21 57 views
6

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:

Gitlab Runner in Gitlab instance

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

Gitlab Runner in Gitlab instance

mi gitlab-runner'ı özel kayıt defterinin v2 API'sini kullanmaya nasıl zorlayacağına dair herhangi bir fikriniz var mı?

+0

Görüntüyü koşucudan çekmeyi denediniz mi? Belki de "harici" IP ile? Görüntüyü ana bilgisayardan çekmeye ne dersin? – Martin

+0

@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. –

cevap

0

Gitlab'in hangi sürümleri çalıştırıyorsunuz? Ayrıca bir v2 kayıt defteri için, bir komut satırı anahtarıyla güvenli olmayan kayıt defterine açıkça izin vermeniz veya bir sertifikayı kullanarak kayıt defterinizi güvenceye almanız gerekir.

Aksi durumda güvenlik özel durumu olursa, Docker v1 kayıt defterine geri dönebilir.

+0

Docker versiyonu '1.11.2', detaylı sürüm bilgisi burada: http://pastebin.com/g9ma56ME Güvenli olmayan kayıt defteri ana bilgisayar işletim sisteminde aşağıdaki gibi ayarlanır:' --insecure-kayıt defteri kayıt defteri: 5000 '. Ben bilmiyorum bilmiyorum runner konteynerler - hangi docker binary kullanır, hangi dosyayı hangi koşucu görüntüsü içinde güvensiz kayıt ayarlamak gerekir, vb kaplar başlatır bilmiyorum. Gitlab_runner görüntü yolda bir docker yürütülebilir, yok bu yüzden nereden başlayacağımı bilmiyorum. –