将 GitLab runner 与 GitLab 连接的问题

Issue connecting GitLab runner with GitLab

GitLab 目前 运行 在给定主机上作为容器,我正在尝试在另一个容器中的同一主机上设置 GitLab runner:

GitLab 脚本 (GitLab version: 9.3.9):

[root@rado1 gitlab_runner]# cat gitlab.sh
#!/bin/bash
sudo docker run --detach \
     --hostname gitlab.example.com \
     --publish 443:443 --publish 80:80 --publish 2222:22 \
     --name gitlab \
     --restart always \
     --volume /mnt/data/gitlab/config:/etc/gitlab \
     --volume /mnt/data/gitlab/logs:/var/log/gitlab \
     --volume /mnt/data/gitlab/data:/var/opt/gitlab \
     gitlab/gitlab-ce:latest

GitLab 运行脚本:

[root@rado1 gitlab_runner]# cat gitlab_runner.sh
docker run --name gitlab-ci-multi-runner -d --restart=always \
  --volume /mnt/data/gitlab/gitlab-runner:/home/gitlab_ci_multi_runner/data \
  --env='CI_SERVER_URL=http://gitlab/ci' --env='RUNNER_TOKEN=6cE9HefxGFfbAdadS4eT' \
  --env='RUNNER_DESCRIPTION=runnerA' --env='RUNNER_EXECUTOR=shell' \
  --link gitlab \
  sameersbn/gitlab-ci-multi-runner:1.1.4-7

GitLab 在 HTTPS 上 运行。

现在,当我尝试 运行 gitlab_runner.sh 时,出现以下错误:

ERROR: Registering runner... failed                 runner=6cE9Hefx 
status=couldn't execute POST against http://gitlab/ci/api/v1/runners/register.json: 
Post http://gitlab/ci/api/v1/runners/register.json: 
dial tcp 172.17.0.2:80: getsockopt: connection refused
PANIC: Failed to register this runner. Perhaps you are having network problems 

我可以看到 172.17.0.2 只是 GitLab IP,如下图所示,在 Rancher UI:

我终于让它工作了。我将容器重命名为 gitlab.abc.net 并将 gitlab runner 脚本的配置更新为以下内容:

[root@rado1 gitlab_runner]# cat gitlab_runner.sh
docker run --name gitlab-ci-multi-runner -d --restart=always \
  --volume /mnt/data/gitlab/gitlab-runner:/home/gitlab_ci_multi_runner/data \
  --env='CI_SERVER_URL=https://gitlab.abc.net/ci' --env='RUNNER_TOKEN=6cE9HefxGFfbAdadS4eT' \
  --env='RUNNER_DESCRIPTION=runnerA' --env='RUNNER_EXECUTOR=shell' \
  --link gitlab.abc.net \
  sameersbn/gitlab-ci-multi-runner:1.1.4-7