前言
记录 Jenkins + gitlab + maven 自动打包部署后端项目详细过程!
需求背景
不会偷懒的程序员不是好码农,传统的项目部署,有时候采用本地手动打包,再通过ssh传到服务器部署运行,这种方式对于单应用部署还算可以,不会耗费太大时间,但假如分布式项目,拆分为多个微服务部署,那么每个服务都打包部署一遍,发布上线可能会耗时非常久,Jenkins + gitlab + maven 可以实现自动打包,部署到远程服务器~
什么是gitlab?
程序员肯定都懂的,跟gayhub一样的东西,可以在内网自己搭建一套来管理项目代码。
什么是Jenkins?
可以简单地理解为可以代替你实现自动从gitlab拉取代码,打包,部署到远程服务器的工具。
环境准备
- Centos7 64位,内核版本不低于 3.10
- 安装 docker ,具体参考 这是一次 docker 入门实践
使用`docker`安装`gitlab`
gitlab的安装这里不做过多记录,可以参考以下内容:
-
https://www.cnblogs.com/zuxing/articles/9329152.html
-
https://hub.docker.com/r/beginor/gitlab-ce/
使用`docker`安装`Jenkins`
1docker run --name jenkins --privileged=true -d -v /home/docker/data/jenkins_home:/var/jenkins_home -p 8090:8080 -p 50000:50000 jenkins/jenkins:lts
参数解析:
--name jenkins:指定Jenkins容器名称--privileged=true:防止docker容器没有权限-d:容器在后台启动-v /home/docker/data/jenkins_home:/var/jenkins_home:将容器的/var/jenkins_home映射到本机的/home/docker/data/jenkins_home目录,为了便于管理Jenkins容器的数据,需要注意的是,挂载出来的目录允许我们往容器里面添加文件或者目录,也就是在`/home/docker/data/jenkins_home:/var/jenkins_home`中添加的文件或者目录都会被映射到容器目录`/var/jenkins_home`,那么我们最终在`Jenkins`中配置软件环境时应当使用容器目录路径,因为`Jenkins`实际上是在容器中跑的,比如JDK家目录,你放在/home/docker/data/jenkins_home/jdk_home,那么最终配置应当写成/var/jenkins_home/jdk_home-p 8090:8080 -p 50000:50000:将容器的8080端口映射到本机的8090端口,5000端口映射为5000端口jenkins/jenkins:lts:指定镜像名称跟 tag
可能会踩的坑:
