致命:无法访问"https://gitlab.com/project.git/":无法解析主机:gitlab.com



这几天我一直在绞尽脑汁想找到一个解决办法。

我的gitlab运行程序无法连接到git仓库,错误如下:fatal: unable to access 'https://gitlab.com/project.git/': Could not resolve host: gitlab.com

我尝试了几种解决方案:

  • restart docker: sudo systemctl daemon
  • 重新加载新的运行器
  • 更改了docker映像

但我认为问题来自我的机器(debian ovh)的DNS,我不知道如何解决

,

我的ci 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,像服务的端口

我应该在iptables中添加dna规则还是更新容器使其在端口8093/tcp上运行

docker service 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

谢谢你的帮助

解决方案一:

重新启动docker实例。例:systemctl restart docker。这可能会像在类似情况下看到的那样修复它。我也遇到过一次。


解决方案二:

检查你的仓库权限,这可能是一个问题,而不是docker。可能是缺少访问或配置错误等。

可能与防火墙有关。


3

解决方案你可以在gitlab-runner的config.toml:

中传递一个设置
[[runners]]
...
[runners.docker]
network_mode= <----- THIS

此设置将告诉gitlab-runner在启动时将容器放置在哪个网络中,因此如果您知道gitlab和gitlab-container运行的网络名称:

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

最新更新