-
docker运行gitlab-runner执行命令
docker run -d --name gitlab-runner --restart always -v /srv/gitlab-runner/config:/etc/gitlab-runner -v /var/run/docker.sock:/var/run/docker.sock gitlab/gitlab-runner:latest
宿主机的 /srv/gitlab-runner/config/config.toml 保存着runner的配置
-
executor选择为docker的时候,默认每次都会从远程仓库拉取docker镜像,若想优先使用本地的镜像,需要修改 config.toml 文件,在[runners.docker]中新增一条
pull_policy = "if-not-present"
比如:
-
CI配置完成后,更新代码触发job,但状态为stucked
我这里出现这个现象的三个前提:
在注册runner时,设置了tags,
但在 .gitlab-ci.yml 中未指定对应stage的tags.
-
runner的配置中未勾选 Run untagged jobs 项
因为runner的默认设置
打开配置,可见
Run untagged jobs 项未勾选,表示此runner不能执行没有指定tag的pipeline
所以这个问题的原因就是runner不执行没有指定tag的任务, stucked 表示没有找到runner来执行pipeline
于是解决方案就是两个方向:
- 在 .gitlab-ci.yml 中指定每个stage的tags,与响应的runner一致
- 在runner的配置中未勾选 Run untagged jobs 项
-
使用徽章Badges
添加Badge
这里需要填写想要徽章显示的位置和徽章文件url.不知道怎么填写的话,gitlab给出了例子.
在设置->CI/CD->General pipelines settings中
上面的地址是徽章文件url,下面的地址是想要徽章显示的位置