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

效果:

相关推荐
童槿顏丶2 天前
Jenkins部署(Docker)
java·docker·jenkins
Elastic 中国社区官方博客5 天前
使用 Elasticsearch open inference API 对 OpenAI chat completions 进行支持
大数据·elasticsearch·搜索引擎·全文检索·jenkins
X1A0RAN7 天前
Jenkins Pipeline 变量打印指南
运维·servlet·jenkins
heimeiyingwang7 天前
【CI/CD·Jenkins篇】多节点构建:Agent 配置与任务分发策略
ci/cd·jenkins
heimeiyingwang7 天前
【CI/CD·Jenkins篇】环境搭建:从零部署 Jenkins 主从架构
ci/cd·jenkins
heimeiyingwang7 天前
【CI/CD·Jenkins篇】Pipeline 基础:Declarative 与 Scripted 语法详解
ci/cd·pipeline·jenkins
遨游DATA9 天前
Jenkins 修改 config.xml 后页面仍是旧配置:让 live job 配置真正生效
ci/cd·jenkins·devops·故障排查·config.xml
Dobby_059 天前
【CICD】Jenkins Pipeline 快速学习入门
运维·学习·jenkins
上海安当技术9 天前
统一身份认证平台怎么落地?11 个异构业务系统接入 ASP 的完整实施路径
数据库·servlet·架构·kubernetes·jenkins
回眸不遇10 天前
Elasticsearch嵌套类型nested使用指南
大数据·elasticsearch·jenkins