初學者在這裡:)
我已經在公司的本地網路上設定了一個 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 位址放入mycompanygit
GitLab-runner 配置中,而不用擔心執行器的 DNS。