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,对前台和后台项目的镜像按照创建时间进行清理(打钩之后删除)