如何打出宝塔安装包
生产宝塔机不要编译。安装包由实施方(或客户自己的一台开发/打包电脑)打好,再上传到服务器执行 install.sh / update.sh。
发给客户时 方案 A 或 B 已经写死,不要让现场选择题。
三种档位
| 档 | 谁做 | 怎么做 | 适用 |
|---|---|---|---|
| 0 收现成包 | 客户 | 收到 zip → 上传服务器 → bash install.sh | 默认。生产机只做这一档 |
| 1 自己打包 | 实施方 / 客户开发机 | 双击 打包.bat 或跑 pack-host.ps1 | 要出新包、旁边有源码或 Docker |
| 2 打包服务 | 以后网页点一下 | 尚未提供 | 多客户时再做 |
档 0:客户只收包
你发给客户一个目录,名字类似:
ruoyi-office-baota-20260826/
install.sh ← 首装
update.sh ← 以后更新(不毁库)
health.sh ← 巡检
compose/ ← docker-compose 与 .env
nginx/ ← 站点模板
sql/ ← 建库 + 静态数据(约二十多 MB)
web/ ← 前端,访问前缀 /web/
app/yudao-server.jar
scripts/客户按 方案 A 教程 或 方案 B 教程 上传并安装即可。
不要让客户用 phpMyAdmin 导入 02_static_data.sql,文件太大,脚本会自动导入。
档 1:在开发机打包(本仓库)
前提:这台电脑能访问本工作区源码(ruoyi-office、ruoyi-office-vben、ruoyi-office-db),已装 JDK 17、Maven、Node/pnpm。本机可以没有 Docker。
打开资源管理器,进入:
ruoyi-office-customer-deploy\baota-pack\packager\双击
打包.bat。它会检测到旁边的源码,自动执行pack-host.ps1:Maven 打
yudao-server.jar(约 500MB+)用
.env.baota(VITE_BASE=/web/)构建前端从
ruoyi-office-db/dump/latest/拷贝最新 schema / static_data组装到:
ruoyi-office-customer-deploy\baota-pack\_delivery\ruoyi-office-baota-日期\
把该目录打成 zip(或整目录拷走),交给现场。
也可以在 PowerShell 里手动跑:
cd ruoyi-office-customer-deploy\baota-pack\packager
.\pack-host.ps1打包前按客户改 profile
customers/{客户名}/customer.env 至少写死:
DEPLOY_MODE=a
SITE_HOST=客户服务器IP或域名
HTTP_PORT=80方案 B 则 DEPLOY_MODE=b,并带上 JAVA_OPTS(8G 内存建议 -Xmx1g)。
安装时真正生效的是服务器上的 compose/.env(见各方案教程),打包机这份用于以后「一客户一份 env」。
档 1 备选:只有 Docker、没有 JDK
若打包电脑没有源码仓库,但有 Docker:
- 解压我们给的
ruoyi-packager小目录。 - 准备
customer.env、.pack-credentials(按说明填源码拉取方式)。 - 双击
打包.bat:会docker run ruoyi-packager,产物在out/。
当前实验室常用的是「开发机 pack-host.ps1」这条路径。
打完后自检
打开产物目录,确认:
| 文件 | 要求 |
|---|---|
app/yudao-server.jar | 存在,体积通常 > 400MB |
web/index.html | 存在;源码里资源路径是 /web/ |
sql/01_schema.sql、sql/02_static_data.sql | 存在,static_data 大约二十 MB |
compose/docker-compose.a.yml 与 b.yml | 都在,安装脚本按 .env 的 DEPLOY_MODE 选用 |
install.sh | 用记事本打开应是 Unix 换行;现场会再 sed 去 \r |
然后按对应方案教程上传到 /opt/ruoyi-office-pack。
