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

效果:

相关推荐
Hello.Reader2 小时前
Elasticsearch Ruby 客户端安装与版本兼容指南
elasticsearch·jenkins·ruby
cxyll12346 小时前
postman+newman+jenkins接口自动化
自动化·jenkins·postman
楠奕7 小时前
elasticsearch8.12.0安装分词
运维·jenkins
测试老哥7 小时前
pytest+requests+allure自动化测试接入Jenkins学习
自动化测试·软件测试·学习·测试工具·职场和发展·jenkins·pytest
中国lanwp7 小时前
Jenkins Pipeline中参数化构建
java·jenkins
java资料站8 小时前
Jenkins
运维·jenkins
睡觉z2 天前
Jenkins持续集成系统
运维·ci/cd·jenkins
TPBoreas2 天前
Jenkins启动端口修改失败查找日志
运维·服务器·jenkins
遇见火星2 天前
Jenkins全链路教程——Jenkins调用Maven构建项目
运维·jenkins·maven
clever1013 天前
在ubuntu系统上离线安装jenkins的做法
ubuntu·servlet·jenkins