mirror of
https://github.com/BgaSol/sol-cloud
synced 2026-05-06 08:08:30 +00:00
| .. | ||
| build.sh | ||
| compare-sync.sh | ||
| dep.sh | ||
| README.md | ||
| run.sh | ||
项目部署工具使用指南
🚀 快速开始(3步搞定)
第一步:现场收集信息
在现场服务器上运行收集脚本:
docker/script/collect-layers.sh
这会生成一个压缩包:docker/script/collect/layers-collection.tar.gz
第二步:开发环境生成差异包
把压缩包拿回开发环境,然后运行:
cd script
./compare-sync.sh
这会生成差异包:docker/script/diff/diff-package.tar.gz
第三步:现场应用更新
把差异包带到现场,解压并运行:
tar -xzf diff-package.tar.gz
cd diff-package
./apply-diff.sh
就这么简单!🎉
📁 工具说明
🔍 collect-layers.sh(收集脚本)
作用:告诉我现场环境都有什么文件
什么时候用:需要更新现场环境之前
怎么用:
# 在现场服务器上运行
docker/script/collect-layers.sh
会发生什么:
- 自动扫描所有服务模块
- 记录每个模块的文件信息
- 打包成一个压缩文件
- 你就得到了"现场环境清单"
输出结果:
docker/script/collect/
├── layers-collection.tar.gz ← 这个文件带回每个模块的文件信息
└── 生成于xxx时间戳文件 ← 记录生成时间
⚖️ compare-sync.sh(对比脚本)
作用:对比现场和开发环境,找出差异
什么时候用:在开发环境,拿到现场收集包之后
怎么用:
cd script
./compare-sync.sh
会发生什么:
- 自动找到现场收集包并解压
- 对比现场和本地的文件差异
- 把需要更新的文件打包
- 生成自动安装脚本
- 你就得到了"差异更新包"
输出结果:
docker/script/diff/
├── diff-package/ ← 临时文件夹
│ ├── apply-diff.sh ← 自动安装脚本
│ ├── modules/ ← 服务端更新文件
│ └── client/ ← 前端更新文件
└── diff-package.tar.gz ← 这个文件带到现场
🛠️ apply-diff.sh(安装脚本)
作用:在现场自动安装更新
什么时候用:在现场环境,解压差异包之后
怎么用:
./apply-diff.sh
会发生什么:
- 自动找到项目位置
- 删除不需要的旧文件
- 复制新文件到正确位置
- 更新前端文件
- 完成!服务器就更新好了
💡 实际使用场景
场景1:普通更新
# 现场:收集信息
docker/script/collect-layers.sh
# 开发:生成差异包
cd script && ./compare-sync.sh
# 现场:应用更新
tar -xzf diff-package.tar.gz && cd diff-package && ./apply-diff.sh
场景2:只更新特定模块
# 只更新web-system-8081模块
./compare-sync.sh --modules web-system-8081
场景3:手动指定收集包位置
# 如果收集包在其他地方
./compare-sync.sh --layers-collection /path/to/your/collection/
📂 项目目录结构
你的项目应该长这样:
sol-cloud/
├── docker/
│ ├── script/
│ │ ├── collect-layers.sh ← 收集脚本
│ │ ├── collect/ ← 收集包存放处
│ │ └── diff/ ← 差异包存放处
│ └── output/
│ ├── server/ ← 后端服务文件
│ └── client/ ← 前端文件
└── script/
└── compare-sync.sh ← 对比脚本
🎯 工作原理
- 收集阶段:记录现场每个模块的"文件指纹"
- 对比阶段:把现场指纹和开发环境指纹做对比
- 打包阶段:把有差异的文件打包,生成安装脚本
- 应用阶段:在现场自动替换文件
这样做的好处:
- 🚀 快:只传输变化的文件
- 🎯 准:自动识别需要更新的内容
- 🛡️ 稳:最小化更新风险