Springboot-从0开始教你在centos7中使用jenkins,git和maven自动构建部署springboot项目

7 篇文章 1 订阅
4 篇文章 0 订阅

参考文章

参考

1.安装git maven jenkins

  1. 安装git和maven比较简单,这一步可自行百度

  2. 安装jenkins
    如果没有wget命令就通过yum install wget安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install jenkins

后面的配置有点啰嗦,而且本人配置过了,就跳过这一步介绍,可参考文章

一步一步跟着配置就好了

2.构建项目并发布

2.1新建任务

创建一个自由风格的软件项目
在这里插入图片描述
在这里插入图片描述

2.2配置文本参数

在这里插入图片描述
jar_path:本意是准备项目打包后的jar位置,其实这里是Jenkins工作空间

同样添加其他三个文本参数

spring_profile: prod(这个是读取配置文件前缀,比如dev,test,prod)
jar_name :xxx.jar(jar包名称,这个由你项目的pom.xml文件决定,一般是xxx.0.0.1-SNAPSHORT.jar)
project_name :testProject(项目名称,一定要是你新建的jenkins任务的项目名称,如果用git项目的项目名称的话就找不到相应的文件了)

2.3添加git项目地址

在这里插入图片描述

认证那里配置centos 服务器的root账号密码
点击添加就好了
在这里插入图片描述

2.3配置构建

在这里插入图片描述

添加脚本

mvn clean install -Dmaven.test.skip=true
echo $spring_profile $jar_path $jar_name
cd /usr/local/shell/
./stop.sh $jar_name
echo "Execute shell Finish"
./startup.sh $spring_profile $jar_path $jar_name $project_name

在这里插入图片描述
使用了两个脚本,在centos服务器/usr/local/shell/创建脚本stop.sh和startup.sh

stop.sh

ar_name=${1}
echo "Stopping" ${jar_name}
pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi

startup.sh

spring_profile=${1}
jar_path=${2}
jar_name=${3}
project_name=${4}
cd ${jar_path}/${project_name}/target/
echo ${jar_path}/${project_name}/target/
echo nohup java -jar ${jar_name} &
BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &

!!!注意
执行命令chmod 777 /usr/local/stop.sh /usr/local/startup.sh更改脚本权限,不然执行构建项目的时候会没有权限错误
这个时候脚本会变成绿颜色
在这里插入图片描述

3.运行项目

点击立即构建
在这里插入图片描述
这是用另一个项目成功的截图
在这里插入图片描述
运行的时候我也跟原作者报了同样的错误,说我的mvn命令不存在
解决方法:将mvn命令也指向/usr/bin/mvn

ln -s /usr/local/maven/bin/mvn /usr/bin/mvn

/usr/local/maven一定要是你自己安装的maven目录

下面的状态就是运行中,可以点击#6进去查看控制台输出
在这里插入图片描述

在这里插入图片描述

运行成功!
在这里插入图片描述
可查看项目的工作空间(也就是在/var/lib/jenkins//workspace/posProject下的文件)
在这里插入图片描述
(网上也有很多不是构建自由项目的,通过jenkins构建maven项目来部署的,踩了好多坑,我最后通过这个方法成功了,感谢原作者,我自己就完善了一下)

END

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 Jenkins 和 Docker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令: 1. 在 CentOS 安装 Docker 和 Docker Compose ```bash # 安装 Docker sudo yum update sudo yum install docker # 安装 Docker Compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 2. 在 CentOS 拉取 Docker 镜像 ```bash # 从 Docker 仓库拉取镜像 sudo docker pull your-docker-registry/image-name:tag ``` 3. 在 CentOS 运行 Spring Boot 镜像 ```bash # 运行 Spring Boot 镜像 sudo docker run -d -p 8080:8080 your-docker-registry/image-name:tag # 如果你的 Spring Boot 应用需要使用数据库,你需要为其配置一个数据库服务。你可以使用 Docker Compose 来管理容器编排。 # 在服务器上创建一个文件夹来存储 Docker Compose 配置文件 mkdir ~/docker-compose # 在该文件夹创建一个 docker-compose.yml 文件 nano ~/docker-compose/docker-compose.yml # 编辑该文件并添加以下内容: version: "3" services: app: image: your-docker-registry/image-name:tag ports: - "8080:8080" db: image: postgres environment: POSTGRES_USER: your-db-user POSTGRES_PASSWORD: your-db-password POSTGRES_DB: your-db-name # 启动 Docker Compose cd ~/docker-compose sudo docker-compose up -d # 如果你需要停止 Docker Compose sudo docker-compose down ``` 4. 在 Jenkins 配置 Maven 插件和 Docker 插件 - 在 Jenkins 安装 Maven 插件和 Docker 插件。 - 在 Jenkins 配置 Docker 插件,确保 Jenkins 可以与 Docker 交互。 5. 在 Jenkins 创建一个新的构建项目 - 在 Jenkins 创建一个新的 Maven 项目,并配置 Git 代码库以获取源代码。 - 在构建项目配置 Maven 构建步骤,构建出可执行的 Spring Boot jar 包。 - 在构建项目添加一个后置操作步骤,使用 Docker 插件进行 Docker 镜像的构建。你需要为 Docker 镜像指定一个名称和标签,并指定构建上下文。 - 在构建项目添加另一个后置操作步骤,使用 Docker 插件将构建好的镜像推送到 Docker 仓库。 6. 在目标服务器上使用 Docker 运行 Spring Boot 镜像 - 在目标服务器上拉取构建好的 Spring Boot 镜像。 - 在目标服务器上使用 Docker 运行 Spring Boot 镜像,你可以使用 Docker Compose 或 Docker Stack 进行容器编排和管理。 以上是使用 Jenkins 和 Docker 进行 CentOS 部署 Spring Boot 项目的详细步骤和命令,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值