移动 docker-compose 文件到项目根目录并添加详细注释 更新 SQL 脚本路径引用和部署说明 删除旧的离线部署 compose 文件 |
||
|---|---|---|
| .. | ||
| README.md | ||
| deploy-full-offline.sh | ||
| deploy-prod-offline.sh | ||
| export-offline-bundle.sh | ||
| init-full-db-offline.sh | ||
| init-prod-db-offline.sh | ||
README.md
Offline 打包与部署说明
这套离线方案只放在 offline/ 目录,不改项目原有部署脚本。
仓库内文件
offline/export-offline-bundle.shoffline/deploy-prod-offline.shoffline/deploy-full-offline.shoffline/init-full-db-offline.shbot-images/build.shbot-images/README.md
1. 如何打包
完整模式:
./offline/export-offline-bundle.sh --mode full
生产模式:
./offline/export-offline-bundle.sh --mode prod
可选参数:
./offline/export-offline-bundle.sh --mode full --env-file .env.full --output-dir offline-dist
说明:
full会导出backend、nginx、postgres、redis镜像。prod只导出backend、nginx镜像,数据库和 Redis 由客户自己提供。- 导出产物默认放在
offline-dist/。
2. 打包后会生成什么
每次导出会得到一个目录和一个压缩包,例如:
offline-dist/dashboard-nanobot-full-offline-YYYYMMDD_HHMMSS/
offline-dist/dashboard-nanobot-full-offline-YYYYMMDD_HHMMSS.tar.gz
产物根目录主要包含:
docker-compose.yml.envimport-images.shinit-db.shstart.shstop.shREADME.txt
其中导出的 docker-compose.yml 会带中文注释,方便客户直接按注释修改端口、挂载路径、数据库与 Redis 配置。
此外还会带上:
offline/内部离线脚本sql/数据库初始化 SQLdata/templates/data/skills/data/model/
也就是说,发给客户的是一套部署产物,不需要把源码仓库一起发过去。
3. 客户如何部署
客户拿到压缩包后按下面做:
tar -xzf dashboard-nanobot-full-offline-YYYYMMDD_HHMMSS.tar.gz
cd dashboard-nanobot-full-offline-YYYYMMDD_HHMMSS
./import-images.sh
如果你还另外给了客户 nanobot-base-v0.1.5.tar.gz 这类 Bot 基础镜像包,也需要先导入:
gunzip -c nanobot-base-v0.1.5.tar.gz | docker load
然后修改:
.env- 如果要改挂载路径,再改
docker-compose.yml
再初始化数据库:
./init-db.sh
最后启动:
./start.sh
停止:
./stop.sh
4. 客户主要改哪些配置
.env 里通常需要改:
PUBLIC_HOSTNGINX_PORTHOST_BOTS_WORKSPACE_ROOTDOCKER_NETWORK_SUBNETPANEL_ACCESS_PASSWORD
prod 模式额外常改:
DATABASE_URLREDIS_ENABLEDREDIS_URL
full 模式额外常改:
POSTGRES_SUPERPASSWORDPOSTGRES_APP_PASSWORD
5. 挂载路径怎么改
默认挂载关系在导出产物里的 docker-compose.yml:
./data:/app/data${HOST_BOTS_WORKSPACE_ROOT}:${HOST_BOTS_WORKSPACE_ROOT}/var/run/docker.sock:/var/run/docker.sock
如果客户现场要换宿主机路径,直接改产物里的:
.env中的HOST_BOTS_WORKSPACE_ROOTdocker-compose.yml中的 volume 挂载项
建议:
HOST_BOTS_WORKSPACE_ROOT必须是宿主机绝对路径- 保留
/var/run/docker.sock:/var/run/docker.sock ./data最好保留在产物目录下,方便整体交付
6. 数据库说明
prod 模式:
- 客户需要提前准备 PostgreSQL
- 推荐直接执行:
./init-db.sh
- 这个脚本会自动使用
.env里的DATABASE_URL执行sql/create-tables.sql和sql/init-data.sql - 如果客户想手工执行,也可以执行:
sql/create-tables.sqlsql/init-data.sql
full 模式:
- 产物里包含 PostgreSQL 和 Redis 镜像
./init-db.sh可以手工初始化数据库start.sh启动完整栈时也会自动初始化数据库
7. Bot 基础镜像说明
- 离线部署包里的
./import-images.sh只负责导入当前离线包自带的业务镜像。 - 如果客户现场还需要运行依赖
nanobot-base的 Bot 容器,则还需要额外导入单独提供的nanobot-base-*.tar.gz。 - 导入命令:
gunzip -c nanobot-base-v0.1.5.tar.gz | docker load
- 如果没有导入这类镜像,Dashboard 主服务可以启动,但相关 Bot 运行时容器可能会因为缺少基础镜像而启动失败。
8. 看哪份文档
- 研发/打包同学看本文件:
offline/README.md - 客户部署时看导出产物根目录里的:
README.txt - 如果要单独构建和导出
nanobot-base镜像,看:bot-images/README.md