前言
DevOps( Development和Operations的组合词 )的概念在软件开发行业中逐渐流行起来。越来越多的团队希望实现产品的敏捷开发,DevOps 使一切成为可能。有了 DevOps,团队可以定期发布代码、自动化部署、并将持续集成( CI ) / 持续交付( CD )作为发布过程的一部分。说到 CICD 比较出名的有 jenkins 和 gitlab-runner 、circle.ci 和travis.ci等等,大家可以自行百度或者找相关文章看看这几个的区别,这里就不详细讲了。
本文将介绍大家如何安装和使用 jenkins 和 gitlab-runner 以及使用 CICD 将前端项目制作成 docker 镜像并推送到阿里云镜像仓库。
准备
首先我们要准备两台机器,可以是虚拟机或者云服务器,我选用的是阿里云 ECS Centos 7 分别来要安装 gitlab 和 jenkins + gitlab-runner,也就是说机器A安装 gitlab,机器B安装 jenkins 和 gitlab-runner。
- 机器 A 安装 gitlab
- 机器 B 安装 jenkins 和 gitlab-runner
- 机器 A 和 B 都安装 jdk、maven 和 docker
- 在机器A gitlab 上面创建项目
注意:我这里是把jenkins 和 gitlab-runner 安装在同一台机器上
安装 gitlab
之前我已经写过一篇关于如何安装gitlab,这里就不详细说了,大家可以查看这篇文章上面讲的也很详细。注意这篇文章已经教你如何生成你的SSH私钥和公钥了,后面会用到
安装 jenkins
同样的我之前也写过一篇文章关于如何安装jenkins,这里也不详细说了,大家可以查看这篇文章上面讲的也很详细。
注意:这篇文章已经教你如何安装 jdk、maven 和 docker 后面就不做介绍了
安装 gitlab-runner
这里详细讲下如何安装gitlab-runner,我们先去查看官网,上面有介绍如何安装。
# For RHEL/CentOS/Fedora
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
# For RHEL/CentOS/Fedora
sudo yum install gitlab-runner
安装 jdk、maven和docker
略!
在 gitlab 上面创建项目
这里我们会新建一个前端项目,根据自己熟悉的框架可以使用react、angular或vue来创建项目,我这里使用的是umi来创建项目,创建好之后如下图所示。
编写Dockerfile
不管是jenkins还是gitlab-runner使用的都是同一份Dockerfile文件,下面就是制作前端项目成docker镜像的Dockerfile文件。
FROM node:12
# 设置工作路径。所有的路径都会关联WORKDIR
WORKDIR /usr/src/app
# 安装依赖
COPY package*.json ./
RUN npm install
# 拷贝源文件
COPY . .
# 构建应用
RUN npm run build
# 运行应用
CMD [ "npm", "start" ]
使用jenkins
- 新建jenkins任务
- 配置jenkins任务
- 源码管理
- 构建触发器
- 构建
- 保存
- 项目代码添加 tag 并提交,自动触发 jenkins 并构建
新建jenkins任务
点击新建任务
,