Ich benutze GitLab zusammen mit GitLab Runner und DIND.Docker DIND kann nicht auf private Registry zugreifen
Konfigurationsdetails:
---------------------------------------
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 .
---------------------------------------
Als beiseite, in der obigen Konfiguration ist DOCKER_HOST
config in .gitlab-ci.yml
oder nur der Eintrag benötigt (host = "tcp://gitlab-dind:2375
) in config.toml
ausreiche?
Nun, wenn der Läufer läuft, bekomme ich folgende Fehlermeldung:
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
Ich kann mich irren, aber es scheint dieser Fehler ist, weil der Dienstkonto (svc-art-user
) nicht in der Lage ist einzuloggen vor der DIND Bild ziehen passiert.
Danke für die Antwort. Tut mir leid, aber ich habe vergessen zu erwähnen, dass ich das schon probiert habe. Ich habe den Inhalt der Datei config.json kopiert (die generiert wurde, nachdem ich den Befehl 'docker login -u svc-art-benutzer -p einige-pwd docker.artifactory.abc.net' auf dem Host ausgeführt habe) _as is_ in ' Geheime Variable "Abschnitt meiner Projekteinstellung. Trotzdem bleibt der Fehler bestehen. Ich hoffe, ich muss die Container nicht neu starten. Alle Container (GitLab, Runner & DIND) laufen auf einem Host. – Technext
Versuchen Sie, den Gitlab-Runner neu zu starten, da ich nicht sicher bin, ob er diese Variable beim Start oder zur Laufzeit aufnimmt. –
Auch nach dem Neustart von Runner und Docker-dind besteht das Problem weiterhin. :( – Technext