docker fatal:unable to access 'https:gitlab.com.git /':无法解析主机:gitlab.com

rbl8hiat  于 2023-04-05  发布在  Docker
关注(0)|答案(1)|浏览(378)

这几天我一直在绞尽脑汁想办法。
我的gitlab runner无法连接到git repos,错误如下:fatal:unable to access 'https:gitlab.com.git /':无法解析主机:gitlab.com
我尝试了几种解决方案:

  • 重新启动docker:sudo systemctl守护进程
  • 重新加载新流道的创建
  • 修改了docker镜像

但我认为问题来自我的机器(debian ovh)的DNS,我不知道如何解决它。
实际上,
我的CD是:

stages:
- docker

back:docker:
  stage: docker
  tags:
    - wellcov-runner
  image: docker:latest
  services:
    - docker:dind
  before_script:
  - echo -n $MAIN_REGISTRY_PASSWORD | docker login -u $MAIN_REGISTRY_USER --password-stdin $CI_REGISTRY
  variables:
    # Pushing into the shared Wellcov container registry (main repository)
    IMAGE: $MAIN_REGISTRY/wellcov-back-end:$CI_COMMIT_REF_NAME
  cache:
    paths:
    - target/
  script:
  - echo "Gitlab CI - Building back-end ${CI_COMMIT_REF_NAME} docker"
  - docker build -t $IMAGE . --build-arg MAVEN_IMAGE=$MAVEN_IMAGE --build-arg UBI_IMAGE=$UBI_IMAGE
  - docker push $IMAGE

流道参数:

concurrent = 1
check_interval = 0
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "wellcov-runner"
  url = "https://gitlab.com/"
  id = 22344137
  token = "...."
  token_obtained_at = 2023-04-01T17:10:09Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "docker"
  [runners.cache]
    MaxUploadedArchiveSize = 0
  [runners.docker]
    tls_verify = false
    image = "ruby:2.7"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
    shm_size = 0

我还怀疑容器的端口不像服务的端口那样是8093/TCP
我应该添加一个dnas规则到iptables或更新容器,使其运行在端口8093/tcp

docker服务ls

ID             NAME                              MODE         REPLICAS   IMAGE
x4lq3jnshtii   gitlab_runner                     replicated   1/1        gitlab/gitlab-runner:latest                                            ***:8093->8093/tcp**

Docker容器ls

CONTAINER ID   IMAGE                                                                  COMMAND                  CREATED        STATUS                  PORTS      NAMES
652d53ee4780   gitlab/gitlab-runner:latest                                            "/usr/bin/dumb-init …"   14 hours ago   Up 14 hours                        gitlab_runner.1.m3wt71h3f5eldppib83j3uvzj

谢谢你的帮忙

4jb9z9bj

4jb9z9bj1#

解决方案一:

重启你的docker示例。例如:systemctl restart docker。这可能会修复它,因为看到类似的情况。也发生在我身上一次。

方案二:

检查你的仓库权限,这可能是仓库的问题,而不是docker的问题。可能是缺少访问权限或配置错误等。
可能跟防火墙有关。

溶液3

你可以在gitlab-runner的config.toml中传递一个设置:

[[runners]]
...
  [runners.docker]
    network_mode= <----- THIS

这个设置会告诉gitlab-runner在启动容器时将容器放置在哪个网络中,所以如果你知道gitlab和gitlab-containers运行的网络的名称:

docker inspect --format='{{.NetworkSettings.Networks}}' <gitlab container id>

然后将其添加为网络模式(在本例中,网络名称将为git-lab_default。请根据您的情况更改它):

[[runners]]
...
  [runners.docker]
    network mode= "git-lab_default"

如果以上操作失败,请留言。

资料来源:
#47283 | gitlab-foss
#6644 | gitlab-runner

相关问题