GitLab Runner流水线克隆仓库失败(端口错误)求助
解决GitLab Runner克隆仓库端口错误的排查指南
看起来你在GitLab Runner构建过程中碰到了仓库克隆失败的端口问题,先把你提供的构建日志贴出来方便大家理解场景:
将等待服务启动并运行...
使用预定义容器的Docker镜像sha256:377f89d04c6a8215fcd5abcb918eb1efd3ef7d93aa02c4662942c9181cde01e9...
拉取Docker镜像php:latest...
使用构建容器的Docker镜像php:latest ID=sha256:c8d1a5f14eb751e402a046d2b6424b041969af06b17db2cc8ea5a82fa343a593...
在runner-2ea396b6-project-1-concurrent-0上通过vk-VirtualBox运行...
克隆仓库...
克隆到'/builds/gitlab/V1ki/ProductManager'...
致命错误:仓库'http://...'克隆失败,提示端口相关错误,请求协助排查原因。
下面是几个实用的排查步骤,你可以逐一验证:
- 先核对仓库地址的端口正确性:你用的是
http://...格式的仓库地址,先确认地址里的端口是否匹配你的GitLab实例配置。GitLab默认HTTP用80端口、HTTPS用443端口,如果你的GitLab改了自定义端口(比如8080),仓库地址必须明确带上这个端口,比如http://your-gitlab-server:8080/V1ki/ProductManager.git,漏写或写错端口肯定会导致连接失败。 - 测试虚拟机与GitLab服务器的网络连通性:登录到你的vk-VirtualBox虚拟机里,手动执行
git clone http://你的完整仓库地址命令,看看能不能成功克隆。如果手动也失败,那大概率是网络端口不通——可以用telnet your-gitlab-ip 端口号或者curl -v http://your-gitlab-ip:端口号来测试端口是否能正常访问:telnet能连上说明端口开放,连不上就是防火墙、路由或者GitLab服务本身的问题。 - 检查Docker容器的网络访问权限:因为构建是在php容器里运行的,你可以进入这个构建容器(用
docker exec -it 容器ID bash命令,容器ID可以从日志里的镜像信息附近查找),然后在容器内部测试访问GitLab仓库的端口,看看是不是容器网络隔离导致无法访问。如果容器内访问失败,可能需要调整Runner的Docker网络模式(比如用host模式试试,或者配置桥接网络的端口转发)。 - 排查GitLab服务器的防火墙/安全组规则:如果你的GitLab服务器在云平台或者有本地防火墙,要确保对应的仓库访问端口已经对外开放,并且允许Runner所在的VirtualBox虚拟机IP访问。比如Linux服务器可以用
ufw status(Debian/Ubuntu)或者firewall-cmd --list-ports(CentOS/RHEL)查看已开放的端口,没开放的话要添加对应的端口规则。 - 确认GitLab Runner的克隆配置:有时候Runner的配置文件(通常是
config.toml)里的clone_url参数可能设置了错误的地址模板,或者.gitlab-ci.yml里自定义了GIT_CLONE_URL变量,导致克隆时用了错误的端口地址。你可以检查这两个地方的配置是否正确。
内容的提问来源于stack exchange,提问作者user8540935
相关产品推荐
相关产品推荐

