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

效果:

相关推荐
海兰6 天前
Jina Embeddings V5 Text + Elasticsearch 9.x 本地部署指南
elasticsearch·jenkins·jina
luod6 天前
Docker 快速安装Jenkins
java·docker·jenkins
小道仙976 天前
jenkins对接、jenkins-rest
java·servlet·jenkins·jenkins-rest
成为你的宁宁6 天前
Jenkins 自动化部署前后端分离若依项目全攻略:涵盖环境配置、Maven/Node.js 工具安装、GitLab 项目协同,及前后端构建、服务器推送与代码更新验证全步骤
node.js·自动化·gitlab·jenkins·maven
声声长乐6 天前
Jenkins + Docker 完整部署指南
ubuntu·docker·jenkins
古斯塔夫歼星炮6 天前
Dify + Jenkins 实现AI应用持续集成与自动化部署
ci/cd·jenkins·dify
优秀的颜7 天前
Elasticsearch(7.x)集成
大数据·elasticsearch·jenkins
何以不说话7 天前
CICD服务器jenkins
运维·jenkins
海兰9 天前
Elasticsearch Java 客户端(9.x)
java·elasticsearch·jenkins
海兰9 天前
Elasticsearch 9.x Java 异步客户端
java·elasticsearch·jenkins