`无法访问 'XXX':无法解析主机` Gitlab CI/CD 管道

`unable to access 'XXX': Could not resolve host` Gitlab CI/CD pipeline

我们在只能通过 L2TP VPN 隧道访问的专用服务器上托管 Gitlab。域的 DNS 设置为 IP 到内部网络中的主机,因此显然没有 VPN 就无法访问它。问题是当 Gitlab CI/CD 被触发时,作业中出现错误,日志如下:

Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /builds/web/XXX/.git/
fatal: unable to access 'https://<our domain>/web/XXX.git/': Could not resolve host: <our domain>

这里是.gitlab-ci.yml: 图片:docker/compose:最新

services:
  - docker:dind

before_script:
  - docker version
  - docker-compose --version
  - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
  - eval $(ssh-agent -s)
  - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -

build:
  stage: build
  script:
    - docker-compose --context remote up -d --build

好像找不到主机的IP。 我什至不知道从哪里开始诊断问题。在托管服务器中,我 ping 了主机地址,它显示了正确的 IP 地址。我该如何解决这个问题?

此错误是因为主机未知 docker。

我也遇到了同样的问题。我在config.toml

中的docker执行器配置下的extra_hosts参数中添加了域名和域ip

获取您要添加的主机的 IP 地址,因为您需要在 extra_hosts 参数中同时添加主机名和主机 IP。

在你的 config.toml 中,像这样更改:

[[runners]]
  name = "maven-docker"
  url = "https://<your-domain-name>/gitlab/"
  token = "MXvXVma55_Kw2o"
  executor = "docker"
  [runners.custom_build_dir]
  [runners.docker]
    tls_verify = false
    image = "maven:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    extra_hosts = ["<your-domain-name>:<your-domain-ip>"]
    pull_policy = "never"
    shm_size = 0
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
  [runners.custom]
    run_exec = ""

然后,使用命令 sudo gitlab-runner restartgitlab-runner restart

重启 gitlab runner