Reputation: 196
I have a Gitlab server setup on an internal server, on a domain like http://gitlab.example.com
. I have also registered both a runner using the shell executor
as well as a runner using the docker executor
, both on the same machine as the Gitlab server.
I have this very basic .gitlab-ci.yml file
runtest:
script:
- npm install
When I run this via the runner using shell executor
, everything works just fine. The repo is checked out, and it runs a npm install.
However, when I run this via the runner configured as a docker executor
. I get the following error:
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
The issue being, that my Gitlab server is on a subdomain called gitlab.example.com
and the runner tries to checkout the code from http://example.com
. It is as if the docker executor gets passed the wrong server url, and therefore cant correctly check out the Git repo.
I cant figure out why there is a difference between the two runners, and where to perhaps configure Gitlab to use the correct path to the git repo for all runners?
Edit: here is the output from running ps aux | grep gitlab
git 373 1.5 9.5 657036 385916 ? Sl 13:08 0:04 unicorn worker[0] -D -E production -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 [local] idle gitlab-+ 406 0.0 0.5 1115624 23832 ? Ss 13:09 0:00 postgres: gitlab gitlabhq_production [local] idle gitlab-+ 407 0.0 0.5 1116772 24104 ? Ss 13:09 0:00 postgres: gitlab gitlabhq_production [local] idle gitlab-+ 409 0.0 0.6 1116852 24784 ? Ss 13:09 0:00 postgres: gitlab gitlabhq_production [local] idle gitlab-+ 412 0.0 0.6 1117364 24644 ? Ss 13:09 0:00 postgres: gitlab gitlabhq_production [local] idle root 615 0.0 0.0 4252 1120 ? Ss Aug14 0:00 runsvdir -P /opt/gitlab/service log: ....................................................................................................................................................................................................$ root 674 0.0 0.0 4100 644 ? Ss Aug14 0:00 runsv gitlab-monitor root 680 0.0 0.0 4100 676 ? Ss Aug14 0:00 runsv gitlab-workhorse root 689 0.0 0.0 4244 1156 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/prometheus root 707 0.0 0.0 4244 1236 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/gitaly root 708 0.0 0.0 4244 1240 ? S Aug14 0:01 svlogd -tt /var/log/gitlab/gitlab-workhorse root 709 0.0 0.0 4244 1068 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/unicorn root 710 0.0 0.0 4244 1228 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/sidekiq root 711 0.0 0.0 4244 1064 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/logrotate root 712 0.0 0.0 4244 696 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/nginx root 713 0.0 0.0 4244 1216 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/postgresql root 714 0.0 0.0 4244 1156 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/redis-exporter root 715 0.0 0.0 4244 1128 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/postgres-exporter root 716 0.0 0.0 4244 1228 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/gitlab-monitor root 717 0.0 0.0 4244 1244 ? S Aug14 0:00 svlogd -tt /var/log/gitlab/node-exporter root 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 [local] idle gitlab-+ 1547 0.0 0.4 1114536 18512 ? Ss 13:14 0:00 postgres: gitlab gitlabhq_production [local] idle gitlab-+ 1548 0.0 0.4 1114884 19224 ? Ss 13:14 0:00 postgres: gitlab gitlabhq_production [local] idle srv 1565 0.0 0.0 12740 2248 pts/0 S+ 13:14 0:00 grep gitlab root 27235 0.1 0.4 56260 20132 ? Ssl 12:30 0:03 /usr/bin/gitlab-ci-multi-runner run --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$ root 27282 0.0 0.0 4340 1576 ? Ss 12:30 0:00 /bin/sh /opt/gitlab/embedded/bin/gitlab-logrotate-wrapper root 27288 0.0 0.1 42056 5532 ? Ss 12:30 0:00 nginx: master process /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx gitlab-+ 27289 0.0 0.1 46688 7700 ? S 12:30 0:00 nginx: worker process gitlab-+ 27290 0.0 0.0 42260 3088 ? S 12:30 0:00 nginx: cache manager process 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/node-exporter/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-exporter/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/data gitlab-+ 27307 0.0 0.7 1103736 29220 ? Ss 12:30 0:00 postgres: checkpointer process gitlab-+ 27308 0.0 0.2 1103620 10880 ? Ss 12:30 0:00 postgres: writer process gitlab-+ 27309 0.0 0.5 1103620 20664 ? Ss 12:30 0:00 postgres: wal writer process gitlab-+ 27310 0.0 0.1 1104192 6284 ? Ss 12:30 0:00 postgres: autovacuum launcher process gitlab-+ 27311 0.0 0.0 31808 3952 ? Ss 12:30 0:00 postgres: stats collector process 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:0 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-rails [0 of 25 busy] git 27357 0.0 0.0 20124 2956 ? Ss 12:30 0:00 /bin/bash /opt/gitlab/embedded/bin/gitlab-unicorn-wrapper git 27376 0.5 7.8 577152 320180 ? Sl 12:30 0:14 unicorn master -D -E production -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 [local] idle git 27485 0.4 9.9 687964 405976 ? Sl 12:31 0:10 unicorn worker[1] -D -E production -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 [local] idle gitlab-+ 30455 0.0 0.6 1117852 26280 ? Ss 12:50 0:00 postgres: gitlab gitlabhq_production [local] idle
Upvotes: 2
Views: 1132
Reputation: 196
This was caused by network settings on the runner. The network bridge that was automatically setup between the host and the docker executor was 'outside' our local network. So the docker container was unable to see the url gitlab.example.com
.
I solved it by adding
network_mode = "host"
To the config.toml for the docker runner.
That way the runner shares the same network as the host, and thus have the access it needs.
Upvotes: 1