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

效果:

相关推荐
天航星7 小时前
Docker 安装 Jenkins
java·运维·jenkins
深思慎考2 天前
【新版】Elasticsearch 8.15.2 完整安装流程(Linux国内镜像提速版)
java·linux·c++·elasticsearch·jenkins·框架
躺着数星星3 天前
Linux中安装es
linux·elasticsearch·jenkins
gb42152873 天前
Spring Boot 2.5集成Elasticsearch(亲测)
spring boot·elasticsearch·jenkins
何中应3 天前
CentOS安装Jenkins
linux·centos·jenkins
Lin_Aries_04214 天前
基于 CI/CD 平台将应用程序自动部署到 Kubernetes 集群
运维·ci/cd·docker·云原生·容器·kubernetes·jenkins
Terio_my4 天前
Elasticsearch 索引创建与文档管理
大数据·elasticsearch·jenkins
恒雨田5 天前
解决 jenkins 用户 SSH 连接目标服务器时的 Permission denied 问题
运维·ssh·jenkins
Lin_Aries_04216 天前
基于 CI/CD(Jenkins)将 Spring Boot 应用自动部署到 Kubernetes 集群
spring boot·ci/cd·docker·容器·自动化·jenkins
python开发笔记6 天前
python(77) python脚本与jenkins pipeline交互的5种方式
python·jenkins·交互