Docker+Jenkins搭建SpringBoot自动化部署
jenkins
一、liunx安装Docker
1.yum包更新到最新
sudo yum update
2.安装需要的软件包
sudo yum install -y yum-utils device-mapper-persisten-data lvm2
3.设置yum源为阿里云
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.安装docker
sudo yum install docker-ce
5.安装后查看docker版本
docker -v
6.设置开机启动
systemctl enable docker
二、使用Docker安装Jenkins
1.搜索jenkins镜像
docker search jenkins
结果:
docker搜索jenkins
这里使用的是第二个镜像(因为第一个镜像的docker版本较低)
2.拉取镜像
docker pull jenkins/jenkins
3.创建文件夹
mkdir /home/jenkins
4.查看文件权限,给uid为1000的权限
ls -nd jenkins/
chown -R 1000:1000 jenkins/
5.创建并启动容器
docker run -itd -p 9090:8080 -p 50000:50000 --name jenkins --privileged=true -v /home/jenkins:/var/jenkins_home jenkins/jenkins:latest
6.之后浏览器输入 http://你的ip地址:9090
进入之后需要输入密码,在命令行使用如下命令获取密码
cat /home/jenkins/secrets/initialAdminPassword 查看密码
之后会进入jenkins安装插件页面,
这里选择安装推荐插件就可以了;
接下来就是进入jenkins首页,这里使用前需要配置一些基础的maven和jgit
(因为服务器已经安装jdk,这里不需再配置;配置git是为了从git拉取最新代码,配置maven是进行项目的打包;如果这里没有git和maven,需要进入插件管理下载后重启即可)
(如果安装失败,查看失败原因并根据原因安装其他插件先)
配置
添加插件
搜索安装插件
7.进入系统设置,设置项目部署的服务器SSH
系统设置1
系统设置2
系统设置3
三、部署SpringBoot项目
1.新建任务
创建jenkins任务1
创建jenkins任务2
2.配置参数
添加ssh server
填写以下内容
配置参数1
配置参数2(配置git)
配置参数3(打印构建日志)
配置参数4(maven操作)
(这里是maven的打包操作,clean package -Dmaven.test.skip=true -Ptest 意思是删除旧包,并且忽略test打新包,拉取的代码会在服务器的/home/jenkins/workspace/springboot01中)
新建一个任务这里会多一个文件夹,打完的jar包会在target目录中
任务目录
配置参数4(SSH)
配置参数5(SSH Server)
脚本内容:
DATE=$(date +%Y%m%d)export JAVA_HOME PATH CLASSPATHJAVA_HOME=/usr/jdk1.8.0_201PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATHCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATHDIR=/javapro/springbootJARFILE=01-springboot-web-0.0.1-SNAPSHOT.jarif [ ! -d $DIR/backup ];thenmkdir -p $DIR/backupficd $DIRps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9mv $JARFILE backup/$JARFILE$DATEmv -f /home/jenkins/workspace/springboot01/target/$JARFILE /javapro/springboot/$JARFILEjava -jar $JARFILE > out.log &if [ $? = 0 ];thensleep 30tail -n 50 out.logficd backup/ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
脚本的操作就是,将旧包备份、杀掉项目运行的进程、将新打的包移动到项目目录、运行新包
脚本
配置结束,应用保存退出
3.点击立即构建
构建项目
查看构建日志:
查看构建日志1
查看构建日志2
查看构建日志3
、后续操作
部署成功后,git更新代码后只需要在jenkins点击构建,即可完成新代码的部署。
注意:一些常见的构建失败的问题
一:问题1:运行脚本没有权限:
运行脚本没有权限
解决方案:执行授权
给脚本授权
二、问题2
Maven JVM terminated unexpectedly with exit code 137
Maven JVM terminated unexpectedly with exit code 1
原因:服务器内存不足
解决方案:停止一些进程,或服务器提升内存