博客博客
  • 介绍
  • 链表反转
  • 排序算法
  • 二叉树

    • 介绍
    • 深度算法
  • 加密算法

    • 非对称加密
    • 摘要算法
    • 对称加密
  • 激活Windows 11
  • ASP.NET Core 健康检查
  • 获取程序集根目录
  • 闭包
  • CSS 单位指南:CSS em、rem、vh、vw 等详解
  • 自定义Code First约定
  • .NET安装本地化的智能提示
  • 免费开通域名企业邮箱
  • GRPC
  • Hexo生成github page
  • .Net Core日志管理之Log4net
  • linux下更新jenkins
  • MySQL的四种事务隔离级别
  • 发布NuGet包
  • rimraf命令
  • Ubuntu基础操作
  • Ubuntu安装jenkins
  • Vscode无法执行npm等脚本的问题
  • Json

    • Countries
  • 简介
  • 设计原则
  • 行为型模式

    • 介绍
    • 策略模式
  • 创建型模式

    • 介绍
    • 单例模式
  • 结构型模式

    • 介绍
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name
  • 世界上的另一个我
  • 计划生育宣传标语
  • IT术语
  • Single is simple, double is trouble
  • 矿泉水、纯净水、天然水究竟有啥区别
  • 联系
  • 捐赠
GitHub
  • 介绍
  • 链表反转
  • 排序算法
  • 二叉树

    • 介绍
    • 深度算法
  • 加密算法

    • 非对称加密
    • 摘要算法
    • 对称加密
  • 激活Windows 11
  • ASP.NET Core 健康检查
  • 获取程序集根目录
  • 闭包
  • CSS 单位指南:CSS em、rem、vh、vw 等详解
  • 自定义Code First约定
  • .NET安装本地化的智能提示
  • 免费开通域名企业邮箱
  • GRPC
  • Hexo生成github page
  • .Net Core日志管理之Log4net
  • linux下更新jenkins
  • MySQL的四种事务隔离级别
  • 发布NuGet包
  • rimraf命令
  • Ubuntu基础操作
  • Ubuntu安装jenkins
  • Vscode无法执行npm等脚本的问题
  • Json

    • Countries
  • 简介
  • 设计原则
  • 行为型模式

    • 介绍
    • 策略模式
  • 创建型模式

    • 介绍
    • 单例模式
  • 结构型模式

    • 介绍
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name
  • 世界上的另一个我
  • 计划生育宣传标语
  • IT术语
  • Single is simple, double is trouble
  • 矿泉水、纯净水、天然水究竟有啥区别
  • 联系
  • 捐赠
GitHub
  • Docker指南

    • 介绍
    • 安装
  • Docker实例

    • 介绍
    • docker安装consul
    • docker安装elasticsearch
    • docker安装gitlab-runner
    • docker安装gitlab
    • docker安装jenkins
    • docker安装kafka
    • docker安装mongo
    • docker安装mysql
    • docker安装nginx
    • docker安装portainer
    • docker安装rabbitmq
    • docker安装redis
    • docker安装teamcity
  • Docker教程

    • Docker命令大全
    • docker nginx添加端口映射
    • docker服务管理
  • Docker-Compose

    • 网络配置
    • service name和container name

docker安装gitlab-runner

提示

理想情况下,不应将GitLab Runner与GitLab安装在同一台机器上。

安装

docker pull gitlab/gitlab-runner
docker run -itd --name gitlab-runner \
    --restart always \
    -v /srv/gitlab-runner/etc:/etc/gitlab-runner \
    -v /var/run/docker.sock:/var/run/docker.sock \
    gitlab/gitlab-runner

docker-compose

  1. 安装docker-compose

    # unbuntu
    apt install docker-compose
    
  2. 创建docker-compose.yml文件

    version: '3.3'
    
    services:
      gitlab-runner:
        network_mode: bridge # do not create new network
        image: 'gitlab/gitlab-runner'
        container_name: gitlab-runner
        restart: always
        volumes:
          - /srv/gitlab-runner/etc:/etc/gitlab-runner
          - /var/run/docker.sock:/var/run/docker.sock
    
  3. 确保与docker-compose.yml文件在同一目录下并启动它

    docker compose up -d
    

注册gitlab-runner

一个Runner可以特定于某个项目,也可以在GitLab CI中服务于任何项目。服务于所有项目的Runner称为Shared Runner

获取令牌

  • Shared Runner Admin Area> Overview > Runners
  • Group Runner Group > CI/CD > Runners
  • Specific Runners Project > Settings > CI/CD > Runners > Specific runners

如果你是GitLab实例管理员的话,你可以注册一个Shared Runner

Register

进入容器执行注册命令

docker exec -it gitlab-runner gitlab-runner register

接下来会依次要求输入以下信息

Enter the GitLab instance URL (for example, https://gitlab.com/):
http://192.168.37.128/

Enter the registration token:
2uHJuR-A8c97bvc2yAxh

Enter a description for the runner:
[f0f33d68c59a]: docker-runner

Enter tags for the runner (comma-separated):
v1

Registering runner... succeeded                     runner=x8b5fALJ
Enter an executor: virtualbox, docker+machine, kubernetes, custom, docker, docker-ssh, parallels, shell, ssh, docker-ssh+machine:
docker

Enter the default Docker image (for example, ruby:2.6):
alpine:latest

Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!

以上是通过手动一步一步设置,这种操作相对比较麻烦一些,下面我们根据参数指定注册过程需要的数据直接配置,参数根据需要自行修改

gitlab-runner register \
  --non-interactive \
  --url "http://192.168.37.128/" \
  --registration-token "2uHJuR-A8c97bvc2yAxh" \
  --executor "docker" \
  --docker-image alpine:latest \
  --description "docker-runner" \
  --maintenance-note "Free-form maintainer notes about this runner" \
  --tag-list "docker,aws" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"

如果是在Docker容器中运行的runner,注册命令的结构还可以类似于这样

docker run -itd --name gitlab-runner \
  --restart always \
  -v /srv/gitlab-runner/etc:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner register \
  --non-interactive \
  --executor "docker" \
  --docker-image alpine:latest \
  --url "http://192.168.37.128/" \
  --registration-token "2uHJuR-A8c97bvc2yAxh" \
  --description "docker-runner" \
  --maintenance-note "Free-form maintainer notes about this runner" \
  --tag-list "docker,aws" \
  --run-untagged="true" \
  --locked="false" \
  --access-level="not_protected"

docker in docker

gitlab-runner register -n \
   --url http://192.168.37.128/ \
   --registration-token GR1348941YfXHiANyYGSk7a6SzsiK \
   --executor docker \
   --description "My Docker Runner" \
   --docker-image "alpine:latest" \
   --docker-privileged

docker套接字绑定

gitlab-runner register \
   --url http://192.168.37.128/ \
   --registration-token GR1348941YfXHiANyYGSk7a6SzsiK \
   --executor docker \
   --description "My Docker Runner" \
   --docker-image "docker:latest" \
   --docker-volumes /var/run/docker.sock:/var/run/docker.sock

到这里就注册成功了,我们可以在gitlab的Runners界面看到增加了一个runner

相关链接

  • Install GitLab Runner
  • Registering runners
  • gitlab-runner 的 executors 之 docker
Prev
docker安装elasticsearch
Next
docker安装gitlab