基于gitlab-ci runner的Docker stack实践

##背景

公司现有的技术架构为分布式(粗粒度微服务)服务架构,代码版本管理工具使用的gitlab,部署是是通过Jenkins编译打包并部署的,看到原来的项目部署编写的*.sh很繁琐,故先在现有项目测试环境进行实验。

早就听闻gitlab可以集成CI CD 但一直没有尝试过,第一步当然是尝试将研发push的代码先编译,做个初步的编译异常提醒,参考了各种文章和官网文档,开始了接入runner
跟这篇文章过程一样,这里整理一下( [后端]gitlab之gitlab-ci自动部署 - 简书 https://www.jianshu.com/p/df433633816b)

###步骤

  • 安装GitLab-CI 这个不用安装了,装好GitLab就自带了

  • 安装GitLab-Runner
    在centOS上安装gitlab-ci-multi-runner

$ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash
$ yum install gitlab-ci-multi-runner

这样就装好了gitlab-ci-multi-runner,然而我们只是装好了gitlab-runner,当然我们要接着向gitlab-CI注册这个runner,不然gitlab-CI在push事件到来的时候怎么知道要调用谁呢?这里也可以发现和webhook方式的区别,webhook方式是我们主动配置了一个连接给gitlab;gitlab-runner只要注册一下就好了。

  • 那么我们就注册一下
$ gitlab-ci-multi-runner register
#引导会让你输入gitlab的url,输入自己的url,例如http://gitlab.example.com/
#引导会让你输入token,去相应的项目下找到token,例如ase12c235qazd32
#引导会让你输入tag,一个项目可能有多个runner,是根据tag来区别runner的,输入若干个就好了,比如web,hook,deploy
#引导会让你输入executor,这个是要用什么方式来执行脚本,图方便输入shell就好了。

在输入 executor 类型的时候,我尝试过docker的形式 ,会让你选择依赖的镜像,我选择的是maven官方镜像,编译的时候会在一个容器中进行 每次都会启动一个容器,环境非常干净,但后面到我自己需要构建镜像的时候遇到问题,估计不能在容器中构建镜像,就unregister后重新register,然后选择shell的方式

  • 注册成功后gitlab里面可以看到

这里写图片描述

  • 编写.gitlab-ci.yml
    在项目根目录下编写.gitlab-ci.yml这样在push之后,gitlab-ci就会自动识别来解析了。我最初只是想要编译结果 所以是这样写的,关于这个文件的更多介绍,可以参考这篇文章 --》持续集成-通过 .gitlab-ci.yml配置任务 - RUNYUQINGBING的博客 - CSDN博客
    http://blog.csdn.net/RUNYUQINGBING/article/details/78608820
stages:
 - build

makejava:
  stage: build
  script:
    - mvn clean package 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值