gitlab-CI的一些问题

  • 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"
    

    比如:

example.png
  • CI配置完成后,更新代码触发job,但状态为stucked

    我这里出现这个现象的三个前提:

    • 在注册runner时,设置了tags,

    • 但在 .gitlab-ci.yml 中未指定对应stage的tags.

    • runner的配置中未勾选 Run untagged jobs

      因为runner的默认设置

      runner-config.png

打开配置,可见

tag-config.png

Run untagged jobs 项未勾选,表示此runner不能执行没有指定tag的pipeline

所以这个问题的原因就是runner不执行没有指定tag的任务, stucked 表示没有找到runner来执行pipeline

于是解决方案就是两个方向:

  • .gitlab-ci.yml 中指定每个stage的tags,与响应的runner一致
  • 在runner的配置中未勾选 Run untagged jobs
  • 使用徽章Badges

    添加Badge

badges-set.png

这里需要填写想要徽章显示的位置和徽章文件url.不知道怎么填写的话,gitlab给出了例子.
在设置->CI/CD->General pipelines settings中

badges-example.png

上面的地址是徽章文件url,下面的地址是想要徽章显示的位置

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容