• Gitlab CI/CD 之 Gitlab-Runner


    概述

    Gitlab-Runner是Gitlab CI/CD的执行者,gitlab-runner又有很多种类型(就是所谓的executor):

    • SSH
    • Shell
    • Parallels
    • VirtualBox
    • Docker
    • Docker Machine (auto-scaling)
    • Kubernetes
    • Custom
      既然有这么多类型,为什么选docker呢???
    Executor SSH Shell VirtualBox Parallels Docker Kubernetes Custom
    Clean build environment for every build conditional (4)
    Reuse previous clone if it exists conditional (4)
    Runner file system access protected (5) conditional
    Migrate runner machine partial partial
    Zero-configuration support for concurrent builds ✗ (1) conditional (4)
    Complicated build environments ✗ (2) ✓ (3) ✓ (3)
    Debugging build problems easy easy hard hard medium medium medium

    如上表所示,docker无疑是最佳选择。

    其实是之前一直用的shell模式,想试试docker好用不,用过之后真香

    安装

    1. 准备镜像

    根据gitlab server 的版本pull对应版本的gitlab-runner的镜像,镜像版本号查看地址

    // 镜像版本根据自己的gitlab版本而定
    sudo docker pull gitlab/gitlab-runner:v13.10.0
    // docker in docker 的镜像,根据本地的docker版本来拉去相应的版本
    sudo docker pull docker:20.10.5-dind
    

    2. 运行容器

    // 创建文件夹来放配置文件以及公共的缓存文件,到时候会映射进去
    sudo mkdir /var/gitlab-runner /var/gitlab-runner/config /var/gitlab-runner/.nuget /var/gitlab-runner/.m2 /var/gitlab-runner/.npm
    // 运行gitlab-runner
    sudo docker run -d --name gitlab-runner --restart always 
         -v /var/gitlab-runner/config:/etc/gitlab-runner 
         -v /var/run/docker.sock:/var/run/docker.sock 
         gitlab/gitlab-runner:v13.10.0
    

    3. 注册gitlab-runner

    // 运行注册容器
    sudo docker run --rm -it -v /var/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register  -n 
       // gitlab 地址
       --url https://gitlab.com/ 
       // token
       --registration-token REGISTRATION_TOKEN 
       // executor 固定是docker
       --executor docker 
       // runner的描述
       --description "auto build image" 
       // docker in docker模式中使用的docker的镜像,根据本地的docker的版本选择,我本地的docker版本是20.10.5所以docker-image选的是docker:20.10.5-dind
       --docker-image "docker:20.10.5-dind" 
       --docker-volumes /var/run/docker.sock:/var/run/docker.sock
       // .net nuget 包全局缓存
       --docker-volumes /var/gitlab-runner/.nuget:/root/.nuget
       // java maven 包全局缓存
       --docker-volumes /var/gitlab-runner/.m2:/root/.m2
       // js npm 包全局缓存
       --docker-volumes /var/gitlab-runner/.npm:/root/.npm
    

    执行完成后关闭容器即可。

    4. 重启gitlab runner

    sudo docker restart gitlab-runner
    

    成功后会在/var/gitlab-runner/config目录下生成一个config.toml,并且在gitlab的Admin Area -> Runners界面看到注册成功的runner.
    大功告成!!!
    参考网址:

  • 相关阅读:
    IDF实验室-CTF训练营-牛刀小试CTF
    百度杯CTF夺旗大赛9月场writeup
    基于Mapxtreme for JAVA的电子地图设计与实现
    centos下 apache+mysql+php的安装
    ssh远程登陆
    毕业设计-JSP论文盲审系统
    Android毕业设计-微圈
    基于Android的高校饮水宝app
    小程序不支持wx.request同步请求解决方法
    微信小程序服务类目大坑:特殊行业服务类目所需资质材料
  • 原文地址:https://www.cnblogs.com/wh-blog/p/14630076.html
Copyright © 2020-2023  润新知