修复 gitlab ci gitlab runner auth.docker.io 连接失败

CI 脚本刚开始会拉取运行脚本所需的 docker 镜像,但是连接的是官方的 registry.docker.io 等类型的远程仓库,连接不上。一般会说报错到哪哪的连接拨号超时。

如果 gitlab runner 是采用 docker 挂载宿主机的 docker sock 的话,那么就说明不是采用 docker in docker 的方式使用 runner。这个时候如果宿主机中的配置文件使用不到,那么 runner 容器中的 docker 也是用不到宿主机中的网络配置的。

采用的办法是先进入容器创建相应的文件夹,假设容器名为 gitlab-runner:

进入容器

docker exec -it gitlab-runner bash

然后在容器中创建 docker 网络配置 文件夹

# mkdir /etc/systemd/system/docker.service.d/

最后将宿主机中的 docker 网络配置 文件拷贝进 gitlab-runner 容器中的对应位置。

sudo docker cp /etc/systemd/system/docker.service.d/http-proxy.conf gitlab-runner:/etc/systemd/system/docker.service.d/http-proxy.conf

重新试一下 Retry pipeline 对应的 job, 看看是否有必要重启 gitlab-runner 容器。

我这里只需要拷贝进 docker.service.d/http-proxy.conf 配置文件就可以了,而无需重启。

关于本文如您有任何想法和意见,欢迎与我们联系,邮箱地址zhi@uqugu.com
您对本文有什么看法,喜欢或者不喜欢都可以发表意见。