Dockerized Gitlab-runner 找不到 Gitlab 容器

Dockerized Gitlab-runner 找不到 Gitlab 容器

初學者在這裡:)

我已經在公司的本地網路上設定了一個 Gitlab 實例。它託管在 docker 容器中,在專用伺服器上運行,其主機名為“開發伺服器” 這個 Gitlab 實例可以透過「訪問https://mycompanygit”,因為網路DNS設定為將mycompanygit重定向到devserver的本地ip。在 devserver 上,還有另一個正在運行的容器,即 nginx 反向代理,它將 mycompanygit 的 http 和 https 請求重定向到 gitlab 容器。現在我想新增第三個容器,也就是 Gitlab-runner 實例。因此,我運行以下命令(取自此處)。

docker run --rm -t -i -v /srv/gitlab-runner/config:/etc/gitlab-runner --name gitlab-runner gitlab/gitlab-runner register \
  --non-interactive \
  --executor "docker" \
  --docker-image alpine:3 \
  --url "https://mycompanygit" \
  --registration-token "MY_REGISTRATION_TOKEN" \
  --description "docker-runner" \
  --tag-list "docker,aws" \
  --run-untagged \
  --locked="false"

我得到:

ERROR: Registering runner... failed                 runner=i3ygCNvW status=couldn't execute POST against https://mycompanygit/api/v4/runners: Post https://mycompanygit/api/v4/runners: dial tcp: lookup mycompanygit on 8.8.8.8:53: no such host
PANIC: Failed to register this runner. Perhaps you are having network problems

如何讓 Gitlab-runner 查看 Gitlab 實例?我甚至不知道它是否與 Docker 或 Gitlab 有關?

另外:gitlab 和 nginx 實例已與 docker-compose 一起設置,這有關係嗎?

非常感謝:)如果我不清楚,請告訴我,我會嘗試重新表達

答案1

GitLab Runner 無法解析 GitLab 實例的 IP,因為它使用 Google 的 DNS 進行網域解析,而 Google 的 DNS 對mycompanygit.查看 ERROR 行的末尾:

....在 8.8.8.8:53 上找 mycompanygit:沒有這樣的主機

最簡單的解決方案是將您在公司 DNS 中使用的主機 IP 位址放入mycompanygitGitLab-runner 配置中,而不用擔心執行器的 DNS。

相關內容