这几天我一直在绞尽脑汁想办法。
我的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
谢谢你的帮忙
1条答案
按热度按时间4jb9z9bj1#
解决方案一:
重启你的docker示例。例如:
systemctl restart docker
。这可能会修复它,因为看到类似的情况。也发生在我身上一次。方案二:
检查你的仓库权限,这可能是仓库的问题,而不是docker的问题。可能是缺少访问权限或配置错误等。
可能跟防火墙有关。
溶液3
你可以在gitlab-runner的config.toml中传递一个设置:
这个设置会告诉gitlab-runner在启动容器时将容器放置在哪个网络中,所以如果你知道gitlab和gitlab-containers运行的网络的名称:
然后将其添加为网络模式(在本例中,网络名称将为
git-lab_default
。请根据您的情况更改它):如果以上操作失败,请留言。
资料来源:
#47283 | gitlab-foss
#6644 | gitlab-runner