Jenkins 部署脚本

java版

javascript 复制代码
#!/bin/bash

APP_NAME="springboot-demo-0.0.1-SNAPSHOT"
JAR_PATH="/home/package/target/${APP_NAME}.jar"
LOG_PATH="/home/package/logs/app.log"

# 查找并停止旧进程
PID=$(ps aux | grep "$APP_NAME.jar" | grep -v grep | awk '{print $2}')

if [ -n "$PID" ]; then
    echo "Stopping existing process with PID: $PID"
    kill -9 $PID || { echo "Failed to kill PID: $PID"; exit 1; }
    echo "Process stopped."
    sleep 3  # 等待端口释放
else
    echo "No running Java process found for $APP_NAME"
fi

# 确保 LOG_PATH 所在目录存在
mkdir -p /home/package/logs

# 启动新的服务
nohup java -jar "$JAR_PATH" > "$LOG_PATH" 2>&1 &

docker 版

javascript 复制代码
|--home
|    |  
|	 --- package 
|           |		 
|		    --- docker
|           |		  
|		    --- target

# 注意:docker-compose 命令要事先安装
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

# 保证系统可执行
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
	
# 重启系统
sudo reboot	

本地项目目录结构 :

Dockerfile文件

javascript 复制代码
# 这里有坑需要自己填,因为dockerhup 已经不提供服务了,所以我是从阿里云定义仓库下载的 视频教程:https://www.bilibili.com/video/BV1Zn4y19743/

# 使用 Java 8 的镜像作为基础
FROM crpi-e68w7himn5fxckd3.cn-shenzhen.personal.cr.aliyuncs.com/ldj-01/openjdk:8-jdk

# 把 jar 包复制到容器里的 /usr/local/apps 目录下
COPY springboot-demo.jar /usr/local/apps/

# 设置工作目录,后面的操作都在这个目录进行
WORKDIR /usr/local/apps

# 容器启动时运行这个命令:执行 Spring Boot 的 jar 包
ENTRYPOINT ["java", "-jar", "/usr/local/apps/springboot-demo.jar"]

docker-compose 文件

注意!!! 这里的路径一定要根据自己实际上传到目标服务器的文件路径来设置

为了避免路径

javascript 复制代码
services:
  springboot-demo:                    # 定义服务名称
    build:
      context: ./                     # 构建上下文目录 (即包含此 docker-compose.yml 文件的目录)
      dockerfile: Dockerfile          # 使用的 Dockerfile 文件名
    image: springboot-demo:v1.0.O     # 构建后生成的镜像名和标签
    container_name: springboot-demo   # 容器名称
    ports:
      - "8088:8080"                   # 端口映射,将主机的8088端口映射到容器的8080端口

脚本:

javascript 复制代码
# 进入Dockerfile所在目录dcoker/  目的是在这个目录执行docker-compose命令成功
cd /home/package/docker


# 将jar包挪到docker目录下
mv ../target/*.jar ./

# 停止旧容器
docker-compose down

# 启动新容器
docker-compose up -d --build

# 删除悬空的镜像
docker image prune -f

效果:

相关推荐
你想考研啊5 小时前
三、jenkins使用tomcat部署项目
运维·tomcat·jenkins
你想考研啊9 小时前
四、jenkins自动构建和设置邮箱
运维·jenkins
Code blocks9 小时前
使用Jenkins完成springboot项目快速更新
java·运维·spring boot·后端·jenkins
会又不会13 小时前
Jenkins-Email Extension 插件插件
运维·jenkins
东林牧之1 天前
CICD[导航]、docker+gitlab+harbor+jenkins从安装到部署
docker·gitlab·jenkins
biass2 天前
jenkins角色权限
运维·jenkins
tomorrow.hello2 天前
Jenkins Pipeline(二)
运维·jenkins
会又不会2 天前
Jenkins-Publish HTML reports插件
运维·jenkins
庸子2 天前
基于Jenkins和Kubernetes构建DevOps自动化运维管理平台
运维·kubernetes·jenkins