我在http://gitlab.example.com
等域上的内部服务器上设置了Gitlab服务器。我还使用shell executor
和使用docker executor
的跑步者注册了跑步者,两者都在与Gitlab服务器相同的机器上。
我有这个非常基本的.gitlab-ci.yml文件
runtest:
script:
- npm install
当我使用shell executor
通过跑步者运行时,一切正常。检查了repo,它运行npm install。
但是,当我通过配置为docker executor
的跑步者运行时。我收到以下错误:
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
问题在于,我的Gitlab服务器位于名为gitlab.example.com
的子域上,并且转轮试图从http://example.com
签出代码。好像docker执行器传递了错误的服务器url,因此无法正确检查Git repo。
我无法弄清楚为什么两个参赛者之间存在差异,以及在哪里配置Gitlab以便为所有参赛者使用正确的git回购路径?
编辑:这是运行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
答案 0 :(得分:0)
这是由跑步者的网络设置引起的。在主机和docker执行程序之间自动设置的网桥位于本地网络的“外部”。因此,docker容器无法看到网址gitlab.example.com
。
我通过添加
解决了这个问题network_mode = "host"
到docker runner的config.toml。
这样,跑者与主机共享同一个网络,因此可以获得所需的访问权限。