1.what is gitlab-ci docker imagegit
CI/CD 自动化集成,自动化部署。简单的说就是把代码提交到gitlab管理的同时部署到指定的server,打成docker image方便部署。部署的时候只须要将image run container即可以运行。docker
传统作法,代码commit 到gitlab后,login in server执行git pull同步新提交的代码。每次更新代码都须要作这样的操做,本人很懒不喜欢浪费不少时间作重复的事情,因此看到gitlab 8.x集成了ci决定尝试一下。服务器
2.CI env主要构成包括代码版本库 Gitlab,CI服务 Gitlab CI,CI运行器 GitLab Runner-docker。gitlab
3.持续集成相关概念测试
1.pipeline 优化
一次 Pipeline 其实至关于一次构建任务,里面能够包含多个流程,如安装依赖、运行测试、编译、部署测试服务器、部署生产服务器等流程。
任何提交或者 Merge Request 的合并均可以触发 Pipeline,以下图所示:code
+------------------+ +----------------+
| | trigger | |
| Commit / MR +---------->+ Pipeline |
| | | |
+------------------+ +----------------+
|
2.stagesserver
Stages 表示构建阶段,说白了就是上面提到的流程。
咱们能够在一次 Pipeline 中定义多个 Stages,这些 Stages 会有如下特色:ip
所以,Stages 和 Pipeline 的关系就是:ci
+--------------------------------------------------------+
| |
| Pipeline |
| |
| +-----------+ +------------+ +------------+ |
| | Stage 1 |---->| Stage 2 |----->| Stage 3 | |
| +-----------+ +------------+ +------------+ |
| |
+--------------------------------------------------------+
|
3.jobs
Jobs 表示构建工做,表示某个 Stage 里面执行的工做。
咱们能够在 Stages 里面定义多个 Jobs,这些 Jobs 会有如下特色:
因此,Jobs 和 Stage 的关系图就是:
+------------------------------------------+
| |
| Stage 1 |
| |
| +---------+ +---------+ +---------+ |
| | Job 1 | | Job 2 | | Job 3 | |
| +---------+ +---------+ +---------+ |
| |
+------------------------------------------+
|
4.搭建过程当中的主要步骤:
.gitlab-ci.yml
文件,而后添加一个 Runner,便可进行持续集成)