一、简介

1、GitLab-CI

GitLab-CI就是一套配合GitLab使用的持续集成系统(当然,还有其它的持续集成系统,同样可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。

2、GitLab-Runner

GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。

所以,GitLab-Runner就是一个用来执行软件集成脚本的东西。你可以想象一下:Runner就像一个个的工人,而GitLab-CI就是这些工人的一个管理中心,所有工人都要在GitLab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,GitLab-CI就会通知相应的工人执行软件集成脚本

二、安装gitlab-runner

1、安装镜像

docker pull gitlab/gitlab-runner:v13.12.0

2、新建目录

mkdir -p /home/apps/gitlab-runner/config

3、创建并启动

docker run -d --name gitlab-runner \
-v /home/apps/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
--net=host \
--restart always \
--privileged=true \
gitlab/gitlab-runner:v13.12.0

三、注册gitlab-runner

1、查看地址和token

进入某一个项目

设置->CI/CD->Runner->Specific runners

2、注册runner

# 进入容器
docker exec -it gitlab-runner /bin/bash# 注册runner
gitlab-runner register# gitlab地址
Enter the GitLab instance URL (for example, https://gitlab.com/):
http://192.168.3.11/# token
Enter the registration token:
XXXXX-XXXXX-XXXXX# 输入runner描述
Enter a description for the runner:
my-runner# gitlab-runner标签名称tag
Enter tags for the runner (comma-separated):
build,deploy# 选择执行gitlab-runner的执行程序。因为我要用docker实现自动部署,所以输入docker
Enter an executor: custom, docker-ssh, parallels, kubernetes, docker, shell, ssh, virtualbox, docker+machine, docker-ssh+machine:
docker# 如果选择docker作为执行程序,那要定义一个默认镜像的名称
Enter the default Docker image (for example, ruby:2.6):
alpine:latest

3、查看runner

四、流水线测试

1、在maven项目下新建gitlab-ci.yml文件

stages:- build- deploy
build:stage: buildtags:- buildonly:- masterscript:- echo "mvn clean "- echo "mvn install"deploy:stage: deploytags:- deployonly:- masterscript:- echo "hello deploy"

2、commit提交后,就会有流水线

五、gitlab-ci.yml使用

1、什么是gitlab-ci.yml文件

将.gitlab-ci.yml文件添加到存储库的根目录,并将GitLab项目配置为使用Runner,则每次提交或推送都会触发CI 管道

2、参数说明

关键字    描述
stages    定义流水线所有的阶段,如果未定义stages,则默认有build、test、deploy三个阶段
stage    定义一个作业阶段(默认值:)test
script    必须参数,由runner执行的shell脚本
image    使用Docker image镜像
services    使用Docker services镜像
before_script    执行作业之前执行的一段shell脚本
after_script    执行完作业执行一段的shell脚本
only    限制作业在什么时候创建
except    限制作业在什么时候不创建
tags    作用使用的Runner运行器的标签列表
allow_failure    允许作业失败,失败的作业不影响提交的状态
when    什么时候运行作业
environment    作用部署的环境名称
cache    指定需要在job之间缓存的文件或目录
artifacts    归档文件列表,指定成功后应附加到job的文件和目录的列表
dependencies    当前作业依赖的其他作业,你可以使用依赖作业的归档文件
coverage    作业的代码覆盖率
retry    作业失败时,可以自动执行多少次
parallel    指定并行运行的作业实例
trigger    定义下游流水线的触发器
include    作业加载其他YAML文件
extends    控制实体从哪里继承
pages    上传GitLab Pages的结果
retry    作业失败时,可以自动执行多少次
variables    定义环境变量

六、gitlab-runner常用命令

1、启动命令

gitlab-runner --debug <command>   #调试模式排查错误特别有用。
gitlab-runner <command> --help    #获取帮助信息
gitlab-runner run       #普通用户模式  配置文件位置 ~/.gitlab-runner/config.toml
sudo gitlab-runner run  # 超级用户模式  配置文件位置/etc/gitlab-runner/config.toml

2、注册命令

gitlab-runner register  #注册
gitlab-runner list      #列出所有运行程序
gitlab-runner verify    #检查注册的runner是否可以连接。 --delete 删除
gitlab-runner verify --delete #删除
gitlab-runner unregister   #取消已注册的runner

#使用令牌注销
gitlab-runner unregister --url http://gitlab.example.com/ --token t0k3n

#使用名称注销(同名删除第一个)
gitlab-runner unregister --name test-runner

#注销所有
gitlab-runner unregister --all-runners

3、服务管理

gitlab-runner uninstall #停止运行并从服务中卸载GitLab Runner

gitlab-runner start     #启动GitLab Runner服务

gitlab-runner stop      #停止GitLab Runner服务

gitlab-runner restart   #重启GitLab Runner服务

gitlab-runner status    #显示GitLab Runner服务的状态。当服务正在运行时,退出代码为零;而当服务未运行时,退出代码为非零

docker 安装配置 gitlab-runner,并注册到 gitlab相关推荐

  1. Docker 安装配置Crowd

    环景: ubuntu 16.04 docker Version: 20.10.7 crowd3.3.2 问题描述: Docker 安装配置Crowd 解决方案: 1.创建docker-compose. ...

  2. Docker安装配置Jenkins教程

    Docker安装配置Jenkins教程 前言 准备工作 一.安装Docker 1.安装 2.查看版本信息 二.配置Docker 镜像加速 1.编辑docker配置文件 2.配置镜像地址,编辑文件内容为 ...

  3. docker安装配置gitlab详细过程

    1.方法一 1 docker pull beginor/gitlab-ce:11.0.1-ce.0 2.方法二 如果服务器网路不好或者pull不下来镜像,只能在其它网路比较好的机器上pull下来镜像, ...

  4. docker安装+配置镜像+命令操作+数据卷+网络管理+DockerFile+镜像服务+项目部署+[高级使用]

    文章目录 Docker基础 一.Docker介绍 1. 什么是虚拟化 2. 什么是Docker 3. 容器与虚拟机比较 4. Docker优势 5. Docker架构 [1]镜像服务(`Image`) ...

  5. docker安装配置分布式elasticsearch、kibana、head、cerebro

    有三个节点分别是node-master(192.168.152.45),node-data1(192.168.152.39), node-data2(192.168.152.29) 在每一太节点上,使 ...

  6. 【Ubuntu-Docker】ubuntu16.04(18.04)Docker安装配置与卸载

    1. 查看是否已经安装Docker 打开一个terminal控制台,直行 sudo docker run hello-world 命令,若控制台有以下信息输出,则表示docker已经安装了 Hello ...

  7. Docker安装配置教程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1 Docker要求: cd /etc/sysconfig/network-scripts/ ls ifcfg* vi if ...

  8. 【Vegas原创】Gitbook的docker安装配置

    1.创建目录:/gitbook/gitbook 和 /gitbook/html 2. /gitbook/gitbook目录下,touch新建README.md 3. docker安装gitbook d ...

  9. 从零开始一步一步搭建Ubuntu Server服务器、修改数据源、安装Docker、配置镜像加速器、Compose部署Gitlab服务

    场景 最终目的是使用Docker Compose部署一个Gitlab服务. 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程 ...

最新文章

  1. if condition 大于_if __name__ == #x27;__main__#x27;: 究竟起什么作用,阅读本文后,其他文章不必再看...
  2. PHP 7.2 新功能介绍
  3. 自适应移动设备页面的设计
  4. Docker 资源限制之内存
  5. Python快速安装库的靠谱办法
  6. 中国移动5G商用首批开放50城 明年扩展至全国地级以上城市
  7. mysql查询语句理解
  8. Python中的变量、引用、拷贝和作用域
  9. 【Linux】复制文件到当前目录 / 复制文件并重命名到当前目录
  10. 编程基础(动态内存的分配)
  11. 学习笔记|Pytorch使用教程22(hook函数与CAM可视化)
  12. excel函数:VLOOKUP+IF多条件匹配取值(数组函数)
  13. Matlab自编函数实现Sobel边缘检测
  14. Project: cosmo ical4j
  15. Verilog模块语法
  16. YARN队列优先级分配策略
  17. TS中的方法重载,函数重载,构造器重载
  18. 对“回调函数”的理解
  19. 苹果计算机开机进入安全模式,iphone进入安全模式及退出安全模式的方法
  20. 电路板设计时的注意事项

热门文章

  1. 水冒泡了几度_水要烧到多少度才能沸腾
  2. MT7688学习笔记(11)——配置WAN/LAN
  3. QT源代码编译与调试
  4. php代码同步工具下载,织梦手机助手(PC+WAP完美同步) v2.0
  5. 依赖报错:While resolving: @vue/eslint-config-standard@6.1.oFound: eslint-plugin-vue@8.7.1
  6. 仿个人税务 app html5_小心你填写的“个税APP”有可能是假的
  7. live800:网站如何添加客服在线咨询功能?
  8. 时速云正式成为中国通信标准化协会全权会员
  9. 微信电商生态化初现端倪
  10. C语言学习笔记一(C语言相关知识)