废话:
别人开场都是前言,我这统称为废话。
确实很久没有写博客和公众号了,因为这几个月以来实在太忙太多事。换了新的工作,新的朋友圈,一切从头来过,我不仅要适应还要努力工作,不然我怕我的“狗盆”不保。
我以为新公司就不要每天负责那么些东西,可以安安静静安安心心的撸代码,草率了,比以前搞得东西更多了......我........,那就继续奥里给吧。
新公司使用gitlab项目管理,之前用的并不多,偶尔使用GitHub上传一些demo项目,没想到这玩意越用越香啊,太好用了,墙裂推荐。
废话完毕~天也不早,干点正事。
gitlab实现自动化部署的方式就是通过安装gitlab-runner,通过每个项目给的url和token,就会自动拉取代码,然后执行一系列你写好的shell就OK。
docker pull gitlab/gitlab-runner:latest
docker run -d --name gitlab-runner --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:latest
//初始化注册
docker exec -it gitlab-runner gitlab-runner register
此时注意了,就会提示让你输入Url——token——desc(项目描述)——tags(就是你这个runner的名称),url和token是每一个项目gitlab-runner给你默认分配的。
把这里的url和token拷贝出来,输入到控制台提示的就可以了,注意注意:tags必须是唯一的,一个项目下的url和token可以公用,但是输入tags的时候一定要注意不要重复。不然之后自动化部署会出现问题。
注册成功过的tags在上图的位置也可以看到。
yum -y install gitlab-runner_amd64.rpm
这里注意一点:yum 安装的git版本好像只能是1.8的,再更新还是1.8,然而这个版本太低了,会导致后面自动化部署的时候出现这个问题。
#安装源
yum install http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
#安装git
yum install git
#更新git
yum update git
确定版本在2.x
还有jdk和maven安装的方式,这里不描述,那都是常用的东西。需要提一点的是权限问题。因为会用到maven打包,所有要保证给足权限。
cd 到maven的bin路径下执行命令:
chmod +755 ./*
看到这些文件亮了,说明就可以了。
安装完毕!
这个配置文件里面有很多命令,大家可以参考百度,用到的其实并不多,我也没有更深的研究,够用了。
注意注意:所有自动化部署的东西,第一个镜像包要么通过DockerFile手动打包,要么就是利用插件在idea里打包。
再注意:.gitlab-ci.yml文件在项目中放的位置,尽可能的采用springboot单体项目模式,像springcloud管理的项目,他会把你所有的子module都打包,如果你放在子module下面,是不会触发自动部署的。
那么问题来了,如果现在就是springcloud管理的项目下有多个module,怎么办呢?
建立不同分支,每个分支放单独的项目(前提是公共的模块,已被打包放置仓库,不然maven打包其他项目的时候肯定会找不到其他依赖的包)。
随便变更一个文件上传到gitlab,找到你项目在gitlab的位置,CI/CD-作业
所有的执行记录。
点开是可以看到实时的日志的。
结果如此,即为成功~