当前位置: 首页 > news >正文

Docker自动部署Spring Boot项目的Shell脚本

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

  • Docker自动部署Spring Boot项目的Shell脚本
    • 1. 脚本内容
    • 2. 使用说明
    • 3.功能说明
      • 3.1 自动清理旧环境
      • 3.2 自动构建镜像
      • 3.3 自动启动新容器
      • 3.4 添加额外配置(按需修改)
    • 4. 典型工作流程
    • 5. 扩展建议
      • 5.1 添加版本标签(推荐)
      • 5.2 集成到CI/CD
      • 5.3 日志管理


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

Docker自动部署Spring Boot项目的Shell脚本

本文以自动部署Spring Boot项目的Shell脚本为例,整合Docker容器管理的常见操作。
读者可根据实际需求调整参数和步骤

1. 脚本内容

脚本内容如下

#!/bin/bash

# 部署配置(根据实际情况修改)
CONTAINER_NAME="springboot_app"  # Docker容器名称
IMAGE_NAME="springboot-app:v1.0.0"      # Docker镜像名称
# JAR_PATH="./target/*.jar"       # 生成的Jar包路径
DOCKERFILE_PATH="."             # Dockerfile所在目录
PORT_MAPPING="3080:8080"        # 端口映射,将Java服务端口8080映射到本机服务的端口3080

# 1. 停止并删除旧容器
echo "Stopping and removing old container..."
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true

# 2. 删除旧镜像(可选,强制重新构建时使用)
echo "Removing old image..."
docker rmi $IMAGE_NAME || true

# 3. 构建新镜像
echo "Building new image..."
docker build -t $IMAGE_NAME $DOCKERFILE_PATH

# 4. 运行新容器
echo "Starting new container..."
docker run -d \
  --name $CONTAINER_NAME \
  -p $PORT_MAPPING \
  --restart=always \
  $IMAGE_NAME

echo "Deployment completed!"

2. 使用说明

  1. 保存为 deploy.sh 文件
  2. 添加执行权限,命令如下
    chmod +x deploy.sh
    
  3. 执行部署,命令如下
    ./deploy.sh
    

3.功能说明

3.1 自动清理旧环境

  • 强制停止正在运行的旧容器(|| true 用于忽略未找到容器的错误)
  • 删除旧容器和旧镜像

3.2 自动构建镜像

  • 使用当前目录的Dockerfile(修改DOCKERFILE_PATH可指定不同路径)
  • 镜像名称通过IMAGE_NAME参数配置

3.3 自动启动新容器

  • 后台运行(-d 参数)
  • 端口自动映射(修改PORT_MAPPING配置)
  • 自动重启策略(--restart=always

3.4 添加额外配置(按需修改)

# 环境变量示例
-e "SPRING_PROFILES_ACTIVE=prod"

# 数据卷挂载示例
-v /host/path:/container/path

# 内存限制示例
--memory=512m

4. 典型工作流程

更新代码并打包

mvn clean package

运行部署脚本

./deploy.sh

查看运行状态

docker ps -f "name=$CONTAINER_NAME"

5. 扩展建议

5.1 添加版本标签(推荐)

# 在build命令中添加版本号
VERSION="1.0.0"
docker build -t $IMAGE_NAME:$VERSION .

5.2 集成到CI/CD

  • 在Jenkins/GitLab CI中调用此脚本
  • 添加健康检查:
    curl --retry 10 --retry-delay 5 --retry-connrefused http://localhost:8080/actuator/health
    

5.3 日志管理

# 添加日志卷
-v ./logs:/app/logs

根据你的实际项目需求调整参数,这个脚本可以显著简化Spring Boot项目的Docker部署流程。


📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

相关文章:

  • 天津手机网站建设制作培训课程表
  • wordpress 获取相册图片自动app优化官网
  • 商会网站模板seo求职信息
  • 郓城那家网站做的好seo岗位是什么意思
  • 响应式网站 哪些建站宝盒
  • 做家乡网站代码网址收录网站
  • Caddy 从入门到实战指南(一)
  • 鸿蒙NEXT小游戏开发:井字棋
  • Java学习总结-io流-字节流
  • 基于51单片机的模拟条形码识别系统proteus仿真
  • GitLab CVE-2025-2255 漏洞解决方案
  • 【通知】STM32MP157驱动开发课程全新升级!零基础入门嵌入式Linux驱动,掌握底层开发核心技能!
  • Linux信号——信号的保存(2)
  • HTML5 Video(视频)学习笔记
  • AVR128单片机红外遥控8*8LED点阵屏显示
  • 【python中级】使用 setuptools生成 whl 轮子文件
  • Postman接口测试
  • Python 设计模式:迭代模式
  • Unity 常见报错 定位和查找方法
  • 如何利用ATECLOUD测试平台的芯片测试解决方案实现4644芯片的测试?
  • 【Azure】如何使用 Docker CLI 和 Compose 将容器部署到 Azure ACI
  • 2.1 路径问题专题:LeetCode 62. 不同路径
  • Linux离线安装redis,并配置redis集群
  • Linux 基础入门操作 前言 linux操作指令介绍
  • 15. 远程服务器运行jemter的GUI方式
  • 我的世界1.20.1forge模组开发进阶教程——TerraBlender