1.gitlab分支功能
1.feature分支
即工单分支
2.develop分支
开发人员开发完成后,把feature分支合并到develop分支,也是唯一会产生合并冲突的分支
3.test分支
测试分支,合并到此分支会自动进行部署和发布,用于进行单元测试(伪)
4.release分支
test分支上的所有工单测试完成后,合并到此分支,在本地对此分支执行git代码导出差异文件
5.master分支
差异文件导出后,把release分支合并过来
2.gitlab分支权限
develop分支只能由maintainer进行合并和推送操作(推送操作建议只用于修改ci文件,代码bug还是切出一个bug分支进行修改)
test,release,master分支只能由maintainer进行合并操作
3.自动部署原理
调用并执行gitlab-ci.yml文件
A.构建阶段:
ant deploy命令:
用到build.xml文件
打war包放到target下
docker build命令用到dockerfile文件,构建镜像
#tomcat作为父镜像,在此基础上进行构建
FROM 192.168.1.30:5000/library/tomcat:8.5.38
#把镜像时区改为上海时区
RUN echo "Asia/shanghai" > /etc/timezone
#删除tomcat服务器里面的默认项目
RUN rm -rf /usr/local/tomcat/webapps
#把前台项目里的war包拷贝到tomcat服务器下
COPY target/ebpm_ep_gitlab.war /usr/local/tomcat/webapps/ebpm_ep_gitlab.war
#把springboot项目(流程还原功能)拷贝到tomcat服务器下
COPY ROOT.war /usr/local/tomcat/webapps/ROOT.war
#提前解压前台项目修改数据源
RUN unzip -o -q /usr/local/tomcat/webapps/ebpm_ep_gitlab.war -d /usr/local/tomcat/webapps/ebpm_ep_gitlab
#拷贝shell文件到tomcat服务器里面
COPY entrypoint.sh .
执行docker run命令的时候,再执行shell文件
ENTRYPOINT ["sh","./entrypoint.sh"]
把镜像推送到harbor上面
docker push ....
B.部署阶段
删除原本镜像
docker rm -f 容器名
运行新镜像
docker run ..................
-e 环境变量,传入容器,给shell文件修改数据源,文件路径
-v 建立和宿主机的挂载目录
-p 容器端口和宿主机端口的映射
--name 运行的容器名
--restart always 虚拟机重启后容器自动重启
#修改容器里的host文件
#访问doc.ebpm.com.cn变为192.168.1.240
--add-host=doc.ebpm.com.cn:192.168.1.240
4.运维
查看磁盘剩余空间
df- h
查看cpu内存消耗
top
服务器重启后需要做的事情:
runner服务器
Runner服务器重启后,若gitlab上面test分支的ci显示等待中
进入/root/runner里面
cd runner
停止runner服务
docker-compose down
启动runner服务
docker-compose up -d
若报错,显示failed to setip tables
停止docker服务
docker-compose down
重启docker服务
systemctl restart docker
启动runner服务
docker-compose up -d
查看容器项目日志
进入runner虚拟机
docker ps
找到相应的前台或者后台项目容器的id
docker logs 容器id
gitlab&harbor服务器
此服务器若重启
在开机5分钟后:
cd /root/harbor
docker-compose down
执行完成后
docker-compose up -d
三分钟后即完成harbor的重启
gitlab账号问题:
gitlab登录账号输入错误5次,账号自动锁定10分钟,管理员可以手动提前解锁
定期手动清理harbor镜像(每周)
访问 192.168.1.30:5000
账号:admin
密码:pass1word
点击左侧项目,点击右侧library,对前台和后台项目的镜像按照创建时间进行清理(打钩之后删除)