基于Docker+Jenkins实现自动部署SpringBoot+Maven项目

发布于:2024-06-04 ⋅ 阅读:(138) ⋅ 点赞:(0)

安装Docker随便根据其他教程安装即可,本文着重讲jenkins的安装与环境配置。

一、安装jenkins

1.运行命令搜索Jenkins

docker search jenkins

deprecated 是弃用的意思,第一条搜索记录就是告诉我们 jenkins 镜像已经弃用,让我们使用 jenkins/jenkins:lts 镜像名进行拉取。

2.拉取Jenkins镜像 

docker pull jenkins/jenkins:lts
docker images #查看镜像

3.启动Jenkins

先在宿主机创建Jenkins的挂载目录

 mkdir -p /home/jenkins/workspace

 启动容器 

docker run -uroot -d --restart=always --privileged=true  -p 9001:8080 -p9002:50000 \
 -v /home/jenkins/workspace/:/var/jenkins_home/workspace \
 -v /var/run/docker.sock:/var/run/docker.sock \
-v /usr/bin/docker:/usr/bin/docker \
 --name jenkins jenkins/jenkins:lts

4.访问及注意事项

如果使用的是阿里云或者腾讯云等服务器,需要打开防火墙规则,开放容器映射的宿主机的端口9001,9002。打开后页面

  进入容器中查询密码并输入后继续

 docker exec -it -uroot jenkins bash # -uroot 是以管理员身份登入容器
 cat /var/jenkins_home/secrets/initialAdminPassword

5.安装,安装推荐插件即可。 

创建一个jenkins账号,如果不想创建使用默认的admin即可,如果是公网,admin账号需要修改密码。如是新创建的账号就不用。

 然后进行jenkins主界面

二、环境配置

1.插件安装

本次使用的是gitee作为代码仓库,需要安装gitee插件

maven 插件:Maven Integration plugin

 

SSH远程连接插件:Publish Over SSH

2.环境配置

Gitee

进入jekins的系统设置,添加gitee令牌,如果不使用这个令牌模式,可以后续再新建流水线时再通过用户名和密码添加即可。

信息填写完成点击【测试连接】按钮,提示成功,说明设置gitee令牌设置正确。

Maven

进入jenkins的工具设置,选择版本,选自动安装

JDK

之前装的插件的作用就是可以选择自动安装jdk版本,新增安装Install from adoptium.net 模式并选择项目使用的jdk版本,后续会自动安装JDK。

3.构建Maven项目 

配置

 

添加源码仓库的地址,以及配置gitee账号密码后保存

 

 配置maven 构建命令 clean install -Dmaven.test.skip=true

 配置远程SSH连接,服务器ip,用户名,密码等,用来将打包好的jar包传输到远程服务器进行部署。

 信息填写完成之后,点击【Test Configuration】按钮,出现如下提示表示连接成功

 4.任务配置

 

exec command可以先不写,可以先部署下看是否可以将容器中的jar包传输到宿主机指定目录。
如果可以进行下面脚本的编写

#!/bin/bash
source /etc/profile
#查看之前运行的进程id
pid=`ps -ef | grep ymxSeller-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
echo "部署前的pid进程 :$pid"
# 关闭已经启动的jar进程
if [ -n "$pid" ]
  then
    kill -9 $pid
else
    echo "进程没有启动"
fi
sleep 5s
#copy jar 到启动目录
\cp -rf /home/workplace/maven-demo/ymxSeller-0.0.1-SNAPSHOT.jar /home/workplace/maven-demo/restartdir/ymxSeller-0.0.1-SNAPSHOT.jar

cd /home/workplace/maven-demo/restartdir
nohup /usr/java/jdk1.8.0_371/bin/java -jar /home/workplace/maven-demo/restartdir/ymxSeller-0.0.1-SNAPSHOT.jar  > /home/workplace/maven-demo/restartdir/springboot.log  2>&1 &
echo "脚本执行完毕"
sleep 5s
pid=`ps -ef|grep ymxSeller-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
# 检验进程是否启动
if [ -n "$pid" ]
  then
        echo "部署后的pid进程 :$pid"
                echo "启动成功"
else
    echo "进程没有启动"
fi
~                  

 创建restart.sh并编写上面的脚本,大致意思就是查询该jar包是否正在运行,如果正在运行,kill掉该进程,然后重新运行新的jar包。可以自己查看日志
注意里面的jar包名称和路径。文件夹必须存在,日志文件可以自己生成。

5.任务构建

点击构建即可进行部署。

最后,构建后日志 


网站公告

今日签到

点亮在社区的每一天
去签到