天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
1. 场景
在使用Gitlab Runner执行CI/CD时,job报错,点进去看了下是无法访问git仓库地址
2. 报错
报错内容
fatal: unable to access 'http://gitlab-xxxxxxxxxxxxx/gitlab-instance-xxxxxxx/runner-test01.git/': Could not resolve host: gitlab-b586xxxxxxxxxx
截图
3. 分析
gitlab部署的时候宿主机映射端口修改过的小伙伴,可能会跟我遇到相同问题
因为gitlab默认端口为80,而我们自己部署gitlab时将端口映射为别的,那这里就会访问不到
4. 解决
如不熟悉runner的配置和使用可参考:gitlab runner 安装、注册、配置、使用(Docker部署)
假如我们的gitlab仓库访问地址为http://172.33.0.111:30021
4.1 解决办法1(推荐)
在我们创建的runner的配置文件中加入参数clone_url = “http://ip:port”
与url的值相同
容器中配置文件config.toml我的位置在/etc/gitlab-runner/config.toml
,请根据你自己安装配置runner时的位置找到该文件
如果挂载过则可以到宿主机挂载的位置进行修改
我在挂载的位置进行修改,如未挂载可将位置替换为上面的容器内位置
vim /data/gitlab-runner/config/config.toml
我这里有两个runner都添加一下,如下
修改后该文件会自动重新加载生效,无需做任何操作
等两分钟后我们再去gitlab仓库的CICD中重试即可正常跑完流程,如下
(失败的时候红框中会有重试按钮点击重试即可)
4.2 解决办法2
这里不管gitalb端口是什么,我们在注册runner时使用非交互式注册
在注册的命令中加入参数–clone-rul
gitlab-runner register \
--non-interactive \
--url "http://172.33.0.111:30021" \
--registration-token "RuUyXm9kDKxRLkeeCLXv" \
--executor "docker" \
--docker-image maven:latest \
--description "gr02" \
--tag-list "02" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
--clone-url "http://172.33.0.111:30021"
加上clone-url参数
4.3 解决办法3
找到gitalb服务的配置文件/etc/gitlab/gitlab.rb
在文件中加入参数external_url = “http://172.33.0.111:30021”
这个方法我之前试过,好像是没起作用,可能是别的地方有问题,大家可以试试
感谢阅读,祝君暴富!