46 lines
2.3 KiB
Markdown
46 lines
2.3 KiB
Markdown
# serverdata —— 运行时数据目录
|
||
|
||
server-core 的全部**运行时数据**落盘目录。容器部署时由 `serverrun/docker-compose.yml`
|
||
按子目录挂载卷持久化;镜像内保留 `seed/`、`prompts/` 模板(构建时 COPY,不被卷覆盖)。
|
||
|
||
## 子目录用途
|
||
|
||
| 路径 | 用途 | 入库策略 |
|
||
|---|---|---|
|
||
| `seed/` | 首次启动种子数据(JSON 等,代码初始化依赖) | ✅ 提交(模板) |
|
||
| `prompts/` | 提示词模板(智能客服等) | ✅ 提交(模板) |
|
||
| `data/` | SQLite 数据库文件(`*.db`)及 JSON 运行时数据 | ❌ 忽略(.gitignore) |
|
||
| `logs/` | 运行日志 | ❌ 忽略 |
|
||
| `files/` | 通用文件 | ❌ 忽略 |
|
||
| `keys/` | **密钥文件(微信支付证书等,敏感)** | ❌ 忽略 |
|
||
| `uploads/` | 运行时上传(头像等) | ❌ 忽略 |
|
||
| `park/` | 园区子应用运行时数据(SQLite 多租户库/媒体/大屏) | ❌ 忽略 |
|
||
| `backup/` | 备份产物 | ❌ 忽略 |
|
||
|
||
## 依赖说明
|
||
|
||
- **密钥依赖**:`keys/` 内的证书/私钥文件由 `PINEAGENTS_WECHATPAY_*`、`PINEAGENTS_WX_SP_*`
|
||
等环境变量(路径)引用;容器部署时挂载 `deploy/data/server-core/keys` 后填入。
|
||
- **种子依赖**:`seed/` 由应用 lifespan 首次启动时读取初始化(类似 `data/seed/` 机制),
|
||
缺失时应用会报"无种子数据"类错误,勿删除。
|
||
- **数据库依赖**:`data/*.db` 为 SQLite 回退库;MySQL 为主库(`PINEAGENTS_MYSQL_*` 配置)。
|
||
- **模板依赖**:`prompts/` 为运行期读取的提示词模板,修改后需重启服务生效。
|
||
|
||
## 容器部署挂载(serverrun/docker-compose.yml)
|
||
|
||
**整个 `serverdata/` 目录挂载到容器内 `/app/serverdata`**(含 seed/、prompts/ 模板与全部运行时数据):
|
||
|
||
```yaml
|
||
volumes:
|
||
- ../serverdata:/app/serverdata # serverrun 编排中 opc-server 的挂载
|
||
- ../uploads:/app/uploads
|
||
```
|
||
|
||
> 采用整体挂载后,`seed/`、`prompts/` 以宿主机(git 管理)为准,修改后重启容器即生效,
|
||
> 无需重建镜像;`keys/`、`uploads/`、`data/` 等运行时数据同样持久化在宿主机。
|
||
|
||
## 备份建议
|
||
|
||
备份只需覆盖挂载目录:`deploy/data/server-core/{data,keys,uploads,park}` 与
|
||
`deploy/data/uploads`。`logs/`、`files/` 可按需保留。
|