Docker+Jenkins搭建SpringBoot自动化部署




jenkins 换镜像 jenkins生成docker镜像_jenkins 换镜像

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

结果:




jenkins 换镜像 jenkins生成docker镜像_docker自动化部署_02

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,需要进入插件管理下载后重启即可)

(如果安装失败,查看失败原因并根据原因安装其他插件先)




jenkins 换镜像 jenkins生成docker镜像_docker部署springboot_03

配置




jenkins 换镜像 jenkins生成docker镜像_docker拉取镜像失败_04

添加插件




jenkins 换镜像 jenkins生成docker镜像_docker部署springboot_05

搜索安装插件



7.进入系统设置,设置项目部署的服务器SSH




jenkins 换镜像 jenkins生成docker镜像_docker部署springboot项目_06

系统设置1




jenkins 换镜像 jenkins生成docker镜像_docker自动化部署_07

系统设置2




jenkins 换镜像 jenkins生成docker镜像_docker拉取镜像失败_08

系统设置3




jenkins 换镜像 jenkins生成docker镜像_docker拉取镜像失败_09


三、部署SpringBoot项目

1.新建任务


jenkins 换镜像 jenkins生成docker镜像_jenkins 换镜像_10

创建jenkins任务1


jenkins 换镜像 jenkins生成docker镜像_docker自动化部署_11

创建jenkins任务2


2.配置参数

添加ssh server

填写以下内容


jenkins 换镜像 jenkins生成docker镜像_docker自动化部署_12

配置参数1


jenkins 换镜像 jenkins生成docker镜像_jenkins 换镜像_13

配置参数2(配置git)


jenkins 换镜像 jenkins生成docker镜像_jenkins 换镜像_14

配置参数3(打印构建日志)


jenkins 换镜像 jenkins生成docker镜像_jenkins 换镜像_15

配置参数4(maven操作)


(这里是maven的打包操作,clean package -Dmaven.test.skip=true -Ptest 意思是删除旧包,并且忽略test打新包,拉取的代码会在服务器的/home/jenkins/workspace/springboot01中)

新建一个任务这里会多一个文件夹,打完的jar包会在target目录中


jenkins 换镜像 jenkins生成docker镜像_docker部署springboot项目_16

任务目录


jenkins 换镜像 jenkins生成docker镜像_docker拉取镜像失败_17

配置参数4(SSH)


jenkins 换镜像 jenkins生成docker镜像_docker自动化部署_18

配置参数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

脚本的操作就是,将旧包备份、杀掉项目运行的进程、将新打的包移动到项目目录、运行新包


jenkins 换镜像 jenkins生成docker镜像_docker拉取镜像失败_19

脚本


配置结束,应用保存退出

3.点击立即构建


jenkins 换镜像 jenkins生成docker镜像_docker部署springboot项目_20

构建项目


查看构建日志:


jenkins 换镜像 jenkins生成docker镜像_jenkins 换镜像_21

查看构建日志1


jenkins 换镜像 jenkins生成docker镜像_docker部署springboot_22

查看构建日志2


jenkins 换镜像 jenkins生成docker镜像_jenkins 换镜像_23

查看构建日志3


、后续操作

部署成功后,git更新代码后只需要在jenkins点击构建,即可完成新代码的部署。

意:一些常见的构建失败的问题

一:问题1:运行脚本没有权限:


jenkins 换镜像 jenkins生成docker镜像_jenkins 换镜像_24

运行脚本没有权限


解决方案:执行授权


jenkins 换镜像 jenkins生成docker镜像_docker部署springboot_25

给脚本授权


二、问题2

Maven JVM terminated unexpectedly with exit code 137


jenkins 换镜像 jenkins生成docker镜像_docker部署springboot项目_26

Maven JVM terminated unexpectedly with exit code 1


原因:服务器内存不足

解决方案:停止一些进程,或服务器提升内存