前言
嗨,大家好,我是希留,一个被迫致力于全栈开发的老菜鸟。
一般而言,一个项目部署的由:拉取代码->构建->测试->打包->部署等过程组成,如果我们经常需要部署项目,特别是在微服务时代,服务特别多的情况下,不停的测试打包部署,那估计得有个人一整天专门做这事了,而这事又是繁琐的重复无意义的,所以就需要一套能够持续集成、持续交付、持续部署的自动化构建流程。
Jenkins是开源CI&CD软件领导者,提供超过1000个插件来支持构建、部署、自动化,满足任何项目的需要。我们可以用Jenkins来构建和部署我们的项目,比如说从我们的代码仓库获取代码,然后将我们的代码打包成可执行的文件,之后通过远程的ssh工具执行脚本来运行我们的项目。
一、准备工作
真正的生产环境上,可能是有多台服务器,但是我是用来练手,手头没有多余的服务器,只有一台。所以我就将 Jenkins 和我的 Spring Boot 项目都部署到一台服务器上。
由于本次是使用Docker安装Jenkins,所以需要服务器上提前安装好JDK,Maven,Doker三个必备的环境配置。这里就不过多赘述这三个环境的安装了,可以自行查询资料安装。
java -version
mvn -v
docker version
二、Jenkins的安装及配置
1. Docker环境下的安装
docker pull jenkins/jenkins:lts
docker run -p 9080:8080 --name xiliu-jenkins -u root -v /mydata/jenkins_home:/var/jenkins_home -v /usr/local/jdk1.8.0_321:/usr/local/jdk1.8 -v /usr/local/apache-maven-3.8.6:/usr/local/apache-maven-3.8.6 -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -d jenkins/jenkins:lts
参数 |
说明 |
-p 9080:8080 |
端口映射(将容器的8080端口【后面的8080】映射到服务器的9080端口【前面的9080】,云服务器需要开通9080端口供外 访问) |
–name |
容器名字 |
-u root |
用户名 |
-v /mydata/jenkins_home:/var/jenkins_home |
将配置文件夹挂在到主机(:前面的是主机目录,后面的是容器目录) |
-v /usr/local/jdk1.8.0_321:/usr/local/jdk1.8 |
是把linux下的jdk和容器内的关联(配置Jenkins时使用,:前面的是主机目录,后面的是容器目录) |
-v /usr/local/apache-maven-3.8.6:/usr/local/apache-maven-3.8.6 |
是把linux下的maven和容器内的关联(配置Jenkins时使用,:前面的是主机目录,后面的是容器目录) |
-v $(which docker):/usr/bin/docker |
是可以在Jenkins容器里使用我们Linux下的docker |
-v /var/run/docker.sock:/var/run/docker.sock |
是可以在Jenkins容器里使用我们Linux下的docker |
-d jenkins/jenkins:lts |
后台启动 Jenkins镜像(最新版) |
2. Jenkins的配置
docker logs xiliu-jenkins
确保以下插件被正确安装,未安装的在可选插件中搜索安装即可: (1)根据角色管理权限的插件:Role-based Authorization Strategy (2)把 Jenkins 打包好的 jar 上传到应用服务器上:Publish Over SSH
安装完成后需要重启一下jenkins,在连接后面加restart就可以重启jenkins了,或者使用命令:docker restart 容器名字
三、打包部署SpringBoot应用
因为我的源码是在Gitee上,所以这里以Gitee示例:
2.1 在Jenkins中创建执行任务
2.2 添加git凭据
添加Gitee登录账 凭据。接下来配置 Gitee 的凭证,要根据这些凭证,才能从 Gitee 上拉取代码下来。(如果前面添加了凭证,这里直接选择就行)
2.3 添加maven构建
2.4 增加构建后操作步骤
因为前面运行jenkins的时候已经做了目录的映射,所以jenkins打完包后其实是会把包同步到服务映射的目录里的。所以这里不需要上传jar包,直接执行xshell命令,进入jar包的目录,执行jar包即可。
#第一步是进入到服务器中生成好的jar包的目录下cd /mydata/jenkins_home/workspace/xiliu-admin/xiliu-ucenter/target/#第二步是根据jar包的名字获取运行的pid,并且将该进程杀死ps -ef | grep xiliu-ucenter-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{printf $2}' | xargs kill -9#执行 前加载一下环境变量,否则不会执行java -jar 命令source /etc/profile#最后一步就是将这个jar后台启动了,并且将日志输出到warpper.log中。nohup java -jar xiliu-ucenter-0.0.1-SNAPSHOT.jar >warpper.log &2>1 &#睡眠1秒sleep 1#输出内容,可不加echo "启动完成"
2.5 立即构建
配置完成后,点击立即构建,可以看到控制台输出成功。
2.6 测试
访问项目地址,能够正常访问。大功告成
总结
如果觉得文章对你有帮助,还不忘帮忙点赞、收藏、关注、评论哟,您的支持就是我创作最大的动力!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!