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

做的网站打不开泉州全网营销优化

做的网站打不开,泉州全网营销优化,浙江省建设工程招投标网站,呼和浩特网站建设使用 Shell 脚本实现 Spring Boot 项目自动化部署到 Docker(Ubuntu 服务器) 在日常项目开发中,我们经常会将 Spring Boot 项目打包并部署到服务器上的 Docker 环境中。为了提升效率、减少重复操作,我们可以通过 Shell 脚本实现自动…

使用 Shell 脚本实现 Spring Boot 项目自动化部署到 Docker(Ubuntu 服务器)

在这里插入图片描述

在日常项目开发中,我们经常会将 Spring Boot 项目打包并部署到服务器上的 Docker 环境中。为了提升效率、减少重复操作,我们可以通过 Shell 脚本实现自动化部署。


🧱 一、准备环境

1. 本地和服务器要求

  • 本地安装了 Maven 和 JDK
  • 服务器操作系统为 Ubuntu 22.04 LTS
  • 服务器已安装 Docker,并已配置当前用户对 Docker 的权限(加入 docker 用户组)

2. 本地项目结构示例

project-root/
├── src/
├── target/
│   └── yourapp.jar
├── Dockerfile
└── deploy/
│   └── deploy.sh
└── deploy-to-server.sh

🚀 二、编写部署脚本

project-root/deploy 目录中创建 deploy.sh 脚本(用于服务器端自动执行):

🔧 deploy/deploy.sh 内容:

#!/bin/bashAPP_NAME="ddz_demo"
IMAGE_NAME="ddz_demo_image"
CONTAINER_NAME="ddz_demo_container"
JAR_FILE="ddz_demo.jar"
EXPOSE_PORT=9090echo ">>> 清理旧容器(如有)"
docker stop $CONTAINER_NAME 2>/dev/null || true
docker rm $CONTAINER_NAME 2>/dev/null || true
docker rmi $IMAGE_NAME 2>/dev/null || trueecho ">>> 构建 Docker 镜像"
docker build -t $IMAGE_NAME .echo ">>> 启动新容器"
docker run -d --name $CONTAINER_NAME -p $EXPOSE_PORT:$EXPOSE_PORT $IMAGE_NAME

注意:确保 Dockerfile 中的 EXPOSE 与实际 Java 服务端口一致。


🛠️ 三、编写自动上传与执行脚本

在本地项目根目录添加一个部署脚本,如 deploy-to-server.sh

🔧 deploy-to-server.sh 内容:

#!/bin/bashSERVER_USER="youruser"
SERVER_IP="your.server.ip"
SERVER_DIR="/home/ubuntu/ddz_demo"echo ">>> 打包项目"
mvn clean package -DskipTestsecho ">>> 创建远程目录"
ssh $SERVER_USER@$SERVER_IP "mkdir -p $SERVER_DIR"echo ">>> 上传文件"
scp target/ddz_demo.jar Dockerfile deploy/deploy.sh $SERVER_USER@$SERVER_IP:$SERVER_DIR/echo ">>> 执行部署脚本"
ssh $SERVER_USER@$SERVER_IP "chmod +x $SERVER_DIR/deploy.sh && cd $SERVER_DIR && ./deploy.sh"

🔑 四、配置 SSH 免密登录(自动化关键)

如果不想每次上传/执行都输入密码,请配置 SSH 免密登录:

1. 本地生成密钥(如未生成)

ssh-keygen -t rsa -b 4096

2. 将公钥添加到服务器

ssh-copy-id ubuntu@[your.server.ip]

或手动上传:

cat ~/.ssh/id_rsa.pub | ssh ubuntu@[your.server.ip] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3. 验证

ssh ubuntu@[your.server.ip]

应无需输入密码即可登录。


🧪 五、部署过程演示

只需一条命令即可:

bash deploy-to-server.sh

脚本会自动完成:

  1. 打包项目
  2. 上传构建产物与部署脚本
  3. 构建 Docker 镜像
  4. 启动容器服务

🧯 六、常见问题与解决

问题解决方法
Permission denied 上传失败确保目标目录属于当前用户或改为 /home/ubuntu
Docker 权限错误将用户加入 docker 组:sudo usermod -aG docker $USER 并重启
容器端口配置不一致确保 Dockerfile 中 EXPOSE 和 Java 服务端口一致
脚本无法执行加权限:chmod +x deploy.sh

如果希望进一步提升部署体验,还可以引入:

  • Git Hooks + 脚本部署
  • Jenkins / GitHub Actions 远程触发
  • 容器健康检查 + 日志集中处理
http://www.dtcms.com/wzjs/559813.html

相关文章:

  • 网站建设wix房屋室内装修设计
  • 东莞企业推广网站网站备份文件
  • 网站色彩设计网站建设进度表怎么做
  • 做插画的网站贵州省城乡与住房建设厅网站
  • 南宁五象新区建设投资集团网站seo百度seo排名优化软件
  • 网站无域名注册人idwordpress调用主站的文章
  • 江宁招网站建设58html个人网页代码
  • 深圳趣网站建设世界杯比分查询
  • iis如何设置服务器上网站空间大小商城购物平台
  • wordpress主题茶叶seo企业优化顾问
  • 扁平化蓝色网站模板深圳设计网站
  • 国外无版权素材网站珠海溢动网络科技有限公司
  • 灯饰网站需要这么做阿坝网站设计
  • 黄页网站推广下载免费建设部考试网站
  • 网站开发费计入什么科目建站之星演示
  • 怎么做网站滑动图片部分怎么做ppt
  • 外贸型网站建设公司门户网站建设依据
  • 刚接触网站建设有哪些问题免费网站制作公司
  • 电子商务网站建设与管理实训心得社交网站开发意义
  • 菏泽网站建设培训学校做动态表情包的网站
  • 做lol数据的网站佛山网站设计
  • 设计免费素材网站有哪些如何做好网络营销管理
  • 百度抓取网站登录长沙网站开发
  • 立水桥网站建设网站建设标准依据
  • 织梦发布网站可以做产品推广的网站
  • 做设计英文网站做室内效果图的网站
  • oa网站建设价格如何建立自己的网页
  • 方案 网站建设新浪云WordPress 主题
  • 伊宁网站建设推广平台购物网站多少钱
  • 制作手机网站哪家好怎样把域名和做的网站连接不上