记Gitlab到Docker全过程CI/CD

前记

很久都没有写博客了,不是没时间,可能就是纯粹的懒吧。

背景

公司内部版本管理一直以来都是用的Gitlab,而系统早在前年的时候就已经全部上了Dockergitlab-runner发布过后就一直想利用gitlab-runner进行CI/CD自动化的部署。

Gitlab && Gitlab-Runner

基于原生原方案

关于gitlab && gitlab-runner的安装我这边就不赘述了,不会的可以看官方的文档。

Gitlab

Runner的安装和注册

我们在物理机或云上部署的时候一个流程图如下:

从上图我们可以看出,当我们的服务器多了之后每个服务器都需要安装runner服务,这对于我这样懒的人感觉好麻烦的;受不了。

当然也有可以解决的方案,如:单独用一服务器挂载共享磁盘。

基于Docker新方案

今天我们重点来谈谈,gitlab如何和docker完美结合

先看看看架构图,如下:

接下来我们来说明一哈上面这张图的一个工作流程。

1、开发人员通过本地push代码到gitlab
2、gitlab-runner会根据代码根目录下的gitlab-ci.yml文件执行CIgitlab-ci.yml使用说明请移步:gitlab-ci使用说明
3、在CI过程中会去读取你在代码下Dockerfile文件构建镜像。docker的使用我们这里不做过多赘述
4、将镜像推送到镜像仓库,可以自建,也可以用像阿里云的仓库
5、docker拉去镜像对服务进行部署。

我就想试试,没别的意思!