L'esecutore di Docker in Gitlab CI viene passato url errato al repo di Git

Ho un server Gitlab configurato su un server interno, in un dominio come http://gitlab.example.com . Ho anche registrato entrambi un corridore utilizzando l' shell executor della shell executor e un corridore usando l' docker executor , sia sulla stessa macchina del server Gitlab.

Ho questo file molto semplice di base .gitlab-ci.yml

 runtest: script: - npm install 

Quando eseguo questo via il corridore utilizzando l' shell executor , tutto funziona bene. Il repo è controllato ed esegue un'installazione npm.

Tuttavia, quando eseguo questo tramite il corridore configurato come docker executor . Ho il seguente errore:

 Running with gitlab-ci-multi-runner 9.4.2 (6d06f2e) on Test runner (fe943c63) Using Docker executor with image node:6 ... Using docker image sha256:81e132bdd65c157234d121b7c1743360c0d0d60f9bb6322f75ffa87c8f561ad8 for predefined container... Pulling docker image node:6 ... Using docker image node:6 ID=sha256:3d258692b9fa0ba9568a891e1c702eee61d43e35286bec1b6fb0964700ca1dea for build container... Running on runner-fe943c63-project-5-concurrent-0 via gitlab... Cloning repository... Cloning into '/builds/internal/boilerplate'... fatal: repository 'http://example.com/internal/boilerplate.git/' not found ERROR: Job failed: exit code 1 

Il problema è che il mio server Gitlab è in un sottodominio chiamato gitlab.example.com e il runner tenta di eseguire il checkout del codice da http://example.com . È come se l'esecutore docker abbia superato l'url del server sbagliato e quindi non riesca a controllare correttamente il repo di Git.

Non riesco a capire perché c'è una differenza tra i due corridori e where forse configurare Gitlab per utilizzare il corretto path al repo git per tutti i corridori?

Modifica: ecco l'output da eseguire ps aux | grep gitlab ps aux | grep gitlab

 git 373 1.5 9.5 657036 385916?  Sl 13:08 0:04 unicorno worker [0] -D -E produzione -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb / opt / gitlab / embedded / service / gitlab-rails / config. ru
 gitlab- + 389 0.0 0.7 1121208 30444?  Ss 13:08 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 gitlab- + 406 0.0 0.5 1115624 23832?  Ss 13:09 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 gitlab- + 407 0.0 0.5 1116772 24104?  Ss 13:09 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 gitlab- + 409 0,0 0,6 1116852 24784?  Ss 13:09 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 gitlab- + 412 0.0 0.6 1117364 24644?  Ss 13:09 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 radice 615 0.0 0.0 4252 1120?  Ss Aug14 0:00 runsvdir -P / opt / gitlab / log di servizio: .................................. .................................................. .................................................. .................................................. ............ $
 radice 674 0.0 0.0 4100 644?  Ss Aug14 0:00 runv gitlab-monitor
 radice 680 0.0 0.0 4100 676?  Ss Aug14 0:00 runv gitlab-workhorse
 radice 689 0.0 0.0 4244 1156?  S 14 agosto 0:00 svlogd -tt / var / log / gitlab / prometheus
 radice 707 0.0 0.0 4244 1236?  S Aug14 0:00 svlogd -tt / var / log / gitlab / gitaly
 radice 708 0.0 0.0 4244 1240?  S Aug14 0:01 svlogd -tt / var / log / gitlab / gitlab-workhorse
 radice 709 0.0 0.0 4244 1068?  S Aug14 0:00 svlogd -tt / var / log / gitlab / unicorno
 radice 710 0.0 0.0 4244 1228?  S 14 agosto 0:00 svlogd -tt / var / log / gitlab / sidekiq
 radice 711 0.0 0.0 4244 1064?  S 14 agosto 0:00 svlogd -tt / var / log / gitlab / logrotate
 radice 712 0.0 0.0 4244 696?  S Aug14 0:00 svlogd -tt / var / log / gitlab / nginx
 radice 713 0.0 0.0 4244 1216?  S 14 agosto 0:00 svlogd -tt / var / log / gitlab / postgresql
 radice 714 0.0 0.0 4244 1156?  S Aug14 0:00 svlogd -tt / var / log / gitlab / redis-esporttore
 radice 715 0.0 0.0 4244 1128?  S Aug14 0:00 svlogd -tt / var / log / gitlab / postgres-esporttore
 radice 716 0.0 0.0 4244 1228?  S Aug14 0:00 svlogd -tt / var / log / gitlab / gitlab-monitor
 radice 717 0.0 0.0 4244 1244?  S Aug14 0:00 svlogd -tt / var / log / gitlab / nodo-esporttore
 radice 739 0.0 0.0 4244 1060?  S Aug14 0:00 svlogd -tt / var / log / gitlab / redis
 gitlab- + 1546 0.0 0.5 1115740 21052?  Ss 13:14 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 gitlab- + 1547 0.0 0.4 1114536 18512?  Ss 13:14 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 gitlab- + 1548 0.0 0.4 1114884 19224?  Ss 13:14 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 srv 1565 0.0 0.0 12740 2248 pts / 0 S + 13:14 0:00 grep gitlab
 radice 27235 0.1 0.4 56260 20132?  Ssl 12:30 0:03 / usr / bin / gitlab-ci-multi-corridore correre --working-directory / home / gitlab-runner --config /etc/gitlab-runner/config.toml --service gitlab-runner --syslog --user gitlab-runner
 git 27266 0.0 0.3 130316 14280?  Ssl 12:30 0:00 / opt / gitlab / embedded / bin / gitaly /var/opt/gitlab/gitaly/config.toml
 git 27271 0.1 0.7 311376 32044?  Ssl 12:30 0:04 / opt / gitlab / embedded / bin / ruby ​​/ opt / gitlab / embedded / bin / gitlab-mon web -c /var/opt/gitlab/gitlab-monitor/gitlab-monitor.yml
 git 27274 0.0 0.3 228128 15244?  Ssl 12:30 0:01 / opt / gitlab / embedded / bin / gitlab-workhorse -listenNetwork unix -listenUmask 0 -listenAddr / var / opt / gitlab / gitlab-workhorse / socket -authBackend http: // localhost: 8080 -authSocket /var/opt/gitlab/gitlab-rails/sockets/gitlab.socket -docum $
 radice 27282 0.0 0.0 4340 1576?  Ss 12:30 0:00 / bin / sh / opt / gitlab / embedded / bin / gitlab-logrotate-wrapper
 radice 27288 0.0 0.1 42056 5532?  Ss 12:30 0:00 nginx: process master / opt / gitlab / embedded / sbin / nginx -p / var / opt / gitlab / nginx
 gitlab- + 27289 0.0 0.1 46688 7700?  S 12:30 0:00 nginx: process lavoratore
 gitlab- + 27290 0.0 0.0 42260 3088?  S 12:30 0:00 nginx: process di gestione della cache
 gitlab- + 27293 0.0 0.3 119656 14768?  Ssl 12:30 0:01 opt / gitlab / embedded / bin / node_exporter -web.listen-address = localhost: 9100 -collector.textfile.directory = / var / opt / gitlab / nodo-esporttore / textfile_collector
 gitlab- + 27298 0.0 0.2 116904 11336?  Ssl 12:30 0:00 / opt / gitlab / embedded / bin / postgres_exporter -web.listen-address = localhost: 9187 -extend.query-path = / var / opt / gitlab / postgres-esporttore / queries.yaml
 gitlab- + 27305 0.0 1.2 1103620 52328?  Ss 12:30 0:00 / opt / gitlab / embedded / bin / postgres -D / var / opt / gitlab / postgresql / dati
 gitlab- + 27307 0.0 0.7 1103736 29220?  Ss 12:30 0:00 postgres: process checkpointer
 gitlab- + 27308 0.0 0.2 1103620 10880?  Ss 12:30 0:00 postgres: process di scrittore
 gitlab- + 27309 0.0 0.5 1103620 20664?  Ss 12:30 0:00 postgres: process wal scrittore
 gitlab- + 27310 0.0 0.1 1104192 6284?  Ss 12:30 0:00 postgres: process di lancio di autoventura
 gitlab- + 27311 0.0 0.0 31808 3952?  Ss 12:30 0:00 postgres: process di raccolta statistiche
 gitlab- + 27314 0.2 1.4 370924 59220?  Ssl 12:30 0:05 / opt / gitlab / embedded / bin / prometheus -web.listen-address = localhost: 9090 -storage.local.path = / var / opt / gitlab / prometheus / data -storage.local.chunk -encoding-version = 2 -storage.local.target-heap-size = 109384826 -config.file = / var / opt / gitlab $
 gitlab- + 27323 0.4 0.1 41556 5648?  Ssl 12:30 0:12 / opt / gitlab / embedded / bin / redis-server 127.0.0.1
 gitlab- + 27328 0.0 0.2 39396 10968?  Ssl 12:30 0:00 / opt / gitlab / embedded / bin / redis_exporter -web.listen-address = localhost: 9121 -redis.addr = unix: ///var/opt/gitlab/redis/redis.socket
 git 27333 1.7 9.7 714348 396880?  Ssl 12:30 0:46 sidekiq 5.0.0 gitlab-rail [0 di 25 occupato]
 git 27357 0.0 0.0 20124 2956?  Ss 12:30 0:00 / bin / bash / opt / gitlab / embedded / bin / gitlab-unicorno-wrapper
 git 27376 0.5 7.8 577152 320180?  Sl 12:30 0:14 unicorno master -D -E produzione -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb /opt/gitlab/embedded/service/gitlab-rails/config.ru
 gitlab- + 27382 0.0 0.4 1115236 18844?  Ss 12:30 0:01 postgres: gitlab-psql postgres [locale] inattivo
 git 27485 0,4 9,9 687964 405976?  Sl 12:31 0:10 unicorno worker [1] -D -E produzione -c /var/opt/gitlab/gitlab-rails/etc/unicorn.rb/opt/gitlab/ embedded / service / gitlab-rails / config. ru
 gitlab- + 27517 0.0 0.9 1130316 39788?  Ss 12:31 0:00 postgres: gitlab gitlabhq_production [locale] inattivo
 gitlab- + 30455 0,0 0,6 1117852 26280?  Ss 12:50 0:00 postgres: gitlab gitlabhq_production [locale] inattivo

Ciò è stato causato dalle impostazioni di networking sul corridore. Il ponte di networking che è stato impostato automaticamente tra l'host e l'esecutore del docker era 'fuori' della nostra networking locale. Così il contenitore gitlab.example.com non è stato in grado di vedere l'url gitlab.example.com .

Lo ho risolto aggiungendo

 network_mode = "host" 

Al config.toml per il corridore docker.

In questo modo il corridore condivide la stessa networking dell'host e quindi ha l'accesso che ha bisogno.