当前位置: 代码迷 >> 综合 >> GitLab CI/CD gitlab-runner Docker方式教程
  详细解决方案

GitLab CI/CD gitlab-runner Docker方式教程

热度:88   发布时间:2024-02-13 15:32:18.0
  • 一台GitLab Server可以有多个Runner

  • GitLab Runner:类似于发布订阅,有一个触发机制,接收到代码提交触发部署到指定服务器

gitlab-runner

官方文档

下载

  • docker下载gitlab-runner
    docker pull gitlab/gitlab-runner
    

启动

  • 使用本地系统卷挂载启动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
    

注册

注册Runner是将Runner与GitLab实例绑定的过程。

准备:从GitLab项目页面 --> settings --> CI/CD 获得url和token
在这里插入图片描述

  1. 注册Runner。 在docker的gitlab-runner容器中执行命令gitlab-runner register

    docker exec -it gitlab-runner gitlab-runner register
    
  2. 输入GitLab实例URL。

    # Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    输入上图的url
    
  3. 输入token。

    # Please enter the gitlab-ci token for this runner:
    输入上图的token
    
  4. 输入Runner的描述。稍后可以在GitLab中的UI中进行更改。

    # Please enter the gitlab-ci description for this runner:
    my-runner
    
  5. 输入与Runner关联的标签。稍后可以在GitLab中的UI中进行更改。(注意tag可以有多个,各 tag之间用逗号隔开。如果使用了多个 tag,那么当使用这个 Runner时,在.gitlab-ci.yml的 tag字段里也必须明确指明这些 tags)

    # Please enter the gitlab-ci tags for this runner (comma separated):
    runner-tag1,runner-tag2
    
  6. 将进行注册,提示注册成功或失败

    # Registering runner... succeeded runner=r_413jxi
    

    失败长这样在这里插入图片描述

  7. 输入Runner的executor(运行平台)。runner要运行的平台和方式,因为是用docker安装的所以输入docker

    # Please enter the executor: docker, parallels, shell, ssh, docker+machine, custom, docker-ssh, virtualbox, docker-ssh+machine, kubernetes:
    docker
    
  8. 如果选择Docker作为Runner的executor,还需要指定一个默认的 基础镜像 来运行job (这会在.gitlab-ci.yml中未指明基础镜像时作为默认基础镜像使用),网上很多人都选的 alpine:latest。如果运行java项目,可以选jdk的镜像

    # Please enter the default Docker image (e.g. ruby:2.6):
    alpine:latest
    
  9. 再次提示注册成功。若在运行则要重新启动

    # Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! 
    
  • completed! 这样就完成了Runner与CI之间的信息互注册。Runner知道了自己需要操作哪个项目,CI也知道了该runner的存在。接着刷新一下Runners settings界面,就会看到新注册的Runner了。
    在这里插入图片描述

== 给公司的gitlab配runner。我的runner注册报500,失败了N次,换低版本、不用Docker都报这个错。放弃,不继续写了。==


配置文件

  • 这个yml文件就是有3个job组成,依次为build、test、deploy。在执行这个CI流程时候,会分解成3个job依次执行。这里tags: hwy就是指定使用哪个runner来执行这个job,我们也可以执行其他已注册可用的runner。
  相关解决方案