以前升级docker
版本时,多数情况都是兼容旧版的所有特性和功能的
结果在近期的CICD构建中,在ci脚本没有变化的情况下突然所有runner
的构建都失败了
随后立即采取以下措施尝试修复
- 工程版本回退到上一次可用状态
- 更换
runner
服务器和容器 - 更改
ci
脚本 - 重启
docker
服务
均无效
执行构建步骤出现了以往没有出现过的警告信息
最终报错信息
Downloading artifacts for maven-build (280)...
Downloading artifacts from coordinator... ok id=280 responseStatus=200 OK token=L9iuC5Ss
$ docker build -t $CONTAINER_IMAGE:$IMAGE_VERSION .
Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?
ERROR: Job failed: exit code 1
寻找解决方法
该错误在早期版本就出现过,但与本次情况均不符合,以往通过挂载容器路径即可,而本次情况是runner
服务和构建脚本均不变的情况下突然出现构建失败的情况
在官方文档中看到了相关信息
https://docs.gitlab.com/ce/ci/docker/using_docker_build.html#use-docker-in-docker-executor
官方开发者解释 当天几个小时前发布的新版本 19.03
默认开启了TLS
确实会影响已有的Docker in Docker
模式的构建环境
试了一上午各种方式,最后采用了官方文档的
--docker-volumes /var/run/docker.sock:/var/run/docker.sock
后成功运行了
完整的注册代码为
gitlab-runner register \
--url "https://gitlab.gd.com/" \
--registration-token "token" \
--executor docker \
--description "docker-gitlab-runner" \
--docker-image "docker:19.03.2" \
--docker-privileged \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock \
--tag-list "docker,gd" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
宝剑锋从磨砺出,梅花香自苦寒来.