1. 准备工作:

虚拟机centos7,安装jdk1.8,安装docker(详情可以参考我之前的博客)

使用码云创建私有私有git仓库,使用IDEA将本地springboot项目上传到git仓库中

(详情参考:https://blog.csdn.net/zsyoung/article/details/76891211

2. 什么是Jenkins

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它可以在代码上传仓库(如github,gitee,gitlab)后,在jenkins(一个网站界面)中通过获取代码仓库中最新代码,进行自动化部署,而省去手动打包、上传服务器、部署这一系列步骤,非常方便。

3. 安装jenkins

① 使用docker 安装jenkins

docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 

② 安装成功后浏览器访问:192.168.0.110:8080(服务器ip+上面docker指定的端口号)

    注意:第一次启动的时候正在加载jenkins大概会等待3-10分钟

③ 解锁Jenkins(虚拟机默认账号:姓名拼音,密码123456)

docker ps //查询正在运行的容器id
docker exec -it 7f485bd95c3b  /bin/bash  //进入jenkins容器
cat /var/jenkins_home/secrets/initialAdminPassword # 查询初始化密码

④ 解锁之后,选择安装推荐的插件,大概需要等待3-10分钟

(如出现无法点击,则在docker容器内部输入curl https://www.baidu.com,如无法访问,则证明无法联网,重启docker即可)

        

⑤ 创建新的用户,之后即进入jenkins的首页

            

4. Jenkins配置

按照下图所示,进入全局工具配置

 ① 配置jdk

进入到jenkins容器中 echo $JAVA_HOME 获取java环境安装地址

② 配置maven(选用默认的即可3.6.1)

  ③ 安装maven对应的插件

  找到 “系统管理“ - “插件管理” ,点击 “可选插件”,找到如下maven插件的版本

5. Jenkins实现Springboot项目自动部署

① 新建一个发布任务(首页 - 新建任务 - 新建一个maven项目)

② 配置git账号和密码(其中Credentials需要填git邮箱和面)

③ 项目打包配置

配置完后点击保存即可。

④ 点击立即构建( 第一次构建可能耗时比较长,因为需要下载一些相关依赖jar包)

  可以在控制台看到输出语句

6. Jenkins启动成功之后执行shell脚本

配置 -- 找到Post Steps,在命令空白页中加入如下代码:

#!/bin/bash
#服务名称
SERVER_NAME=springboot_jenkins
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行  
JAR_NAME=springboot_jenkins-0.0.1-SNAPSHOT
# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/springboot_jenkins/target
# 打包完成之后,把jar包移动到运行jar包的目录--->work_daemon,work_daemon这个目录需要自己提前创建
JAR_WORK_PATH=/var/jenkins_home/workspace/springboot_jenkins/target

echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
	kill -9 $id  
	echo "killed $id"  
done
echo "结束进程完成"

#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar

BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  &

    应用并保存,重新点击立即构建,会发现重新拉取git代码并打包

    此时,浏览器访问不到,需要重启docker,加入8081(springboot项目端口号),命令如下:

systemctl restart docker
docker rm $(sudo docker ps -a -q)
docker run -p 8080:8080   -p 8081:8081   -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean

    此时,访问http://192.168.0.106:8081/hello,则可以正常访问

至此,基于Docker+Jenkins实现自动化部署搭建完毕,以后更新代码到服务器,只需提交到git(码云),在jenkins重新构建即可

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐