本文简单介绍了持续集成的概念并着重介绍了如何基于 Gitlab CI 快速构建持续集成环境以及使用Docker实现自动化部署,主要介绍了 Gitlab CI 的基本功能和入门操作流程
以Ubuntu16.04.4++Gitlab CI+Docker自动化部署SptingBoot项目+搭建Harbor镜像仓库
一. 概念
持续集成(Continuous Integration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。持续集成的好处主要有两个:
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
二. 开始搭建
1.依赖包安装
执行完成后,邮件配置时选择Internet即可.
2.GitLab安装
2.1官方教程
如果按照官方安装方法, 直接运行下列命令即可.
但按照官方教程安装会非常慢, 推荐使用下列方式, 利用清华源安装.
2.2清华源(推荐)
首先信任GitLab的GPG公钥
接下来打开gitlab-ce.list文本
然后写入如下内容
最后:wq保存退出. 文本写入成功之后, 执行下列命令安装GitLab.
出现以上界面说明安装成功
3.GitLab启动
安装完成之后启动GitLab
打开sshd和postfix服务
最后输入下列命令, 检查GitLab是否成功运行.
4.GitLab配置
4.1更改服务器IP地址
找到下列内容 我这边默认使用80端口 所以我只修改了external_url改为自己服务器地址
注意不要用8082,9090 端口,因为自带工具会用到
修改完后重新启动服务
检查是否正确运行
gitlab的管理
浏览器打开 http://172.17.1.107 wb页面并设置密
密码自定义设置 设置完之后 账号 root 密码 你刚才设置的 登录成功界面
我这边直接创建一个项目进行演示
在项目下面会有git的操作指南教你如何操作
至此,基于Ubuntu 16.04 x64操作系统的GitLab服务器搭建工作就完成了!具体详细教程可以看我这篇文章
3.然后运用maven插件
大概意思为打包时在target下创建lpine-hwlogs文件夹并把Dockerfile文件,打包好的jar包copy到lpine-hwlogs目录下
六.上传GitLab测试
现在我把SpringBoot项目上传到GitLab看下效果
过程就是把项目push到gitlab仓库 现在打开gitlab看下我们的runner有没有执行
已经在执行我写的脚本 maven打包下载依赖等 稍等一会
说我没有权限 才想起来 运行gitlab-runnner的是gitlab-runnner用户
添加gitlab-runner用户 重启docker 然后重试任务
再次查看运行情况
已经搞定
登录服务查看镜像情况以及浏览器服务测试下
打开浏览器访问: http://172.17.1.107:8000/index
搞定!
七. 安装Harbor搭建镜像仓库
官方文档:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
1 环境依赖:docker docker-compose
1.1 下载docker:
Ubuntu16 可参考 https://blog.csdn.net/jinking01/article/details/82490688
其它系统可参考:http://www.runoob.com/docker/ubuntu-docker-install.html
我的服务器是在阿里云上,直接运行:
注:
检测安装结果:docker -v
1.2 下载docker-compose
阿里云上:apt-get install docker-compose
官网教程参考:https://docs.docker.com/compose/install/#install-compose
1.2.1 官网解决方案一(Linux):(问题:我遇到问题就是下载速度太慢)
1.2.2 官网解决方案二:用python的pip工具
注:
检测安装情况:
1.3 下载Harbor
官网地址:https://github.com/goharbor/harbor/releases
1.3.1 复制地址,运行wget url:
注:下载速度太慢,可以windows上下载下来然后copy到服务器上 创建 /usr/local/harbor文件夹 然后授权
将下载的包传到服务器解压即可
1.3.2 解压:
2 配置harbor
2.1 修改harbor.cfg
将 hostname的值修改成本机IP,比如198.127.0.1
部分配置含义:
2.2 开始安装:
docker要pull很多东西 等下就好了
发现启动nginx发现报错 我们都知道默认80端口 那需要修改harbor里的nginx的默认端口配置:
第一种:
2.3.1 修改docker-compose.yml
例如 修改80:80 为 81:80
2.3.2修改config.xml,在$publicurl()后增加 :81
2.3.3重新生成配置文件
2.4 启动Harbor:
停止命令
2.4.1 进入Harbor的UI界面
(端口默认是80,nginx如果修改了端口映射(比如上面的81:80),那端口就是81):IP:Port
Eg: 172.17.101:81
Harbor默认用户名:adminHarbor
默认密码:Harbor12345
我之前有做修改为123456
登录成功后
创建一个test项目
既然Harbor搭建完成了 test项目也新建完成了 那我们就需要将docker的镜像上传到我们的私仓里
在我们之前装的docker修改insecure-registry
文件目录:/etc/docker/daemon.json (没有则新建该文件)
然后重启docker:
docker push镜像:
登录Harbor
输入
登录成功后 我们把之前的springboot镜像上传到Harbor
使用镜像源创建一个指定镜像的标签 推送镜像到Harbor
八 查看成果
登录Harbor 查看test项目
完美!然后就可以随意push pull了
本文测试SpringBoot项目源码: