本文以SpringBoot项目的部署构建为例,对基于GItLab的CI流程进行简要介绍。
环境准备:
1. 系统环境:
操作系统:CentOS 7.2 1511
GitLab:v11.1.4
GitLab-runner:v11.2.0
Docker:17.03.2 ce
2. 应用环境:
应用框架:Spring boot v2.0.x
项目构建管理:Maven v3.5.x
CI集成流程:
关于证书(HTTPS需要,HTTP请忽略):
注:下述 "hostname.com" 请自行替换为GitLab域名
1. 完整自签证书:
sudo openssl genrsa -des3 -out /etc/gitlab/ssl/hostname.com.key 2048
sudo openssl req -new -key /etc/gitlab/ssl/hostname.com.key -out /etc/gitlab/ssl/hostname.com.csr
sudo openssl x509 -req -days 3650 -in /etc/gitlab/ssl/hostname.com.csr -signkey /etc/gitlab/ssl/hostname.com.key -out /etc/gitlab/ssl/hostname.com.crt
2. 服务端已有证书:
可直接通过浏览器导出证书,并将文件存为hostname.com.crt, 存于/etc/gitlab/ssl/(默认)目录下。
完成证书的获取后,可使用:
openssl s_client -connect hostname.com:443 -CAfile hostname.com.crt -state
进行证书的校验。
若返回0则表示无问题,如下图所示:
具体实现:
1. 安装GitLab:略(直接容器部署即可)
2. 在GitLab中创建项目:略
3. 安装runner:
gitlab-runner有多种安装方式,具体详见 gitlab-runner安装 ,本文采用的docker的方式进行runner的部署:
docker run -d --name bala-runner --restart always \
-v /etc/gitlab-runner/certs/hostname.com.crt:/usr/local/share/ca-certificates/hostname.com.crt \
-v /etc/gitlab-runner/certs/hostname.com.crt:/etc/gitlab-runner/certs/hostname.com.crt \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /root/build_cache:/cache \
gitlab/gitlab-runner:latest
注