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"
    

    比如:

gitlab-CI的一些问题_第1张图片
example.png
  • CI配置完成后,更新代码触发job,但状态为stucked

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

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

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

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

      因为runner的默认设置

      gitlab-CI的一些问题_第2张图片
      runner-config.png

打开配置,可见

gitlab-CI的一些问题_第3张图片
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

gitlab-CI的一些问题_第4张图片
badges-set.png

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

gitlab-CI的一些问题_第5张图片
badges-example.png

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

你可能感兴趣的:(gitlab-CI的一些问题)