auto-sync: 2026-05-03 13:09:16

This commit is contained in:
cfdaily
2026-05-03 13:09:16 +08:00
parent 7c1011ca05
commit d502b282e5
+17 -7
View File
@@ -448,6 +448,8 @@ cp /Volumes/stock/sanguo_vnpy/data/quant_trading.db \
## 9. 历史 Q&A 与踩坑记录
> ⚠️ **安全提示**:本文档中出现的 SSH 密码(sanguo123)仅限内网使用,**严禁**通过端口转发等方式暴露到公网。
### Q1: SSH 为什么不能用 OpenSSH,要用 dropbear
**问题现象**SSH 连接返回 `Connection closed``Connection reset`,反复修过多次,每次重建容器就复发。
@@ -499,7 +501,9 @@ ssh admin@192.168.2.154 "/usr/local/bin/docker ps"
2. 容器可写层的 pip 包在容器删除后会丢失,但 `docker restart` 不会丢
3. 灵活性:可以随时调整版本而不重建镜像
**代价**每次容器重建后首次启动多约 30 秒安装时间
**已缓解**entrypoint.sh 已移除 `set -e`,即使安装失败也不会导致容器退出,其他服务仍可正常启动
**改进方向**(司马懿评审):将 `vnpy_ctastrategy``vnpy_sqlite` 加入 `requirements-extra.txt``dropbear-bin` 加入 Dockerfile apt 安装层,彻底消除网络依赖。
---
@@ -523,18 +527,20 @@ ssh admin@192.168.2.154 "/usr/local/bin/docker ps"
1. 先用 `--security-opt seccomp=unconfined` — 不够,OpenSSH 内部的 seccomp-bpf 不受 Docker seccomp profile 控制
2. 改用 `--privileged` — 解决了所有问题
**风险**`--privileged` 给容器几乎完整的 host 权限。当前容器跑在内网 NAS 上,风险可接受。如果未来有安全需求,可以降级为 `--security-opt seccomp=unconfined` + `--cap-add ALL`,配合 dropbear 使用
**进一步测试**(司马懿评审建议):尝试去掉 `--privileged`——结果**失败**。去掉后容器在 dropbear 配置阶段退出,进入重启循环。原因:entrypoint 中 sudo/apt-get 等操作需要完整权限能力
**风险**`--privileged` 给容器几乎完整的 host 权限。当前容器跑在内网 NAS 上,风险可接受。未来如需收紧,需先将 dropbear 安装写入镜像以避免 entrypoint 中的 sudo 操作。
---
### Q6: 回测服务代码在 NAS 上有两份,`bt-service/` 和 `backtest-service-new/`,区别是什么?
### Q6: 回测服务代码已统一为一份
**说明**
- `/volume1/stock/sanguo_vnpy/bt-service/`**当前生效的**volume 挂载到容器内使用
- `/volume1/stock/sanguo_vnpy/backtest-service-new/` — 开发/备份目录
- `/volume1/stock/sanguo_vnpy/scripts/backtest-service/` — 镜像内置的旧版
三者内容基本相同,**以 `bt-service/` 为准**
**已解决**2026-05-03):`backtest-service-new/``scripts/backtest-service/` 已打包归档到 `archives/`NAS 上只保留 `bt-service/` 一份
---
@@ -557,6 +563,8 @@ ssh admin@192.168.2.154 "/usr/local/bin/docker ps"
2. SMB 读写大文件(1.4GB DB)偶尔有锁文件问题
3. 数据写入绕过了 vnpy 框架的数据接口
**待更新**:赵云已出新的每日增量更新方案(`daily_all_update.py`),覆盖日线+15min。详见赵云的数据平台文档。
**待改进**:改为通过回测服务 API 触发数据更新,或直接在容器内跑 cron。
---
@@ -573,7 +581,7 @@ ssh admin@192.168.2.154 "/usr/local/bin/docker ps"
### Q10: 为什么 code-server 没有启用?
**原因**Dockerfile 中注释掉了 code-server 安装(网络环境问题),entrypoint.sh 中 `code-server &` 会静默失败。当前不影响使用,有 Jupyter Lab 足够。
**原因**Dockerfile 中注释掉了 code-server 安装(网络环境问题),entrypoint.sh 中已移除 `code-server &` 调用,避免静默失败污染日志。当前有 Jupyter Lab 足够。
---
@@ -587,9 +595,11 @@ ssh admin@192.168.2.154 "/usr/local/bin/docker ps"
| 4 | NAS SMB 开机无自动挂载 | 中 | Mac 端配置 LaunchDaemon automount |
| 5 | DB 导入非全自动 | 中 | 编写导入脚本自动化 |
| 6 | 分钟线数据不完整 | 中 | 赵云补充分钟线数据导入 |
| 7 | DB 数据只到 2026-03-27 | | cron 可能未持续跑,需检查 |
| 7 | ~~DB数据只到2026-03-27~~ | | ✅ 已确认数据实际更新到 2026-04-30dbbaroverview 表未刷新但实际数据正常 |
| 8 | pip 每次启动重装耗时 ~30s | 低 | 可接受,或写入镜像 |
| 9 | dropbear 安装需要 apt 联网 | | 未来可写入镜像 |
| 9 | dropbear 安装需要 apt 联网 | | 断网时容器无法启动,应写入镜像(司马懿评审问题1) |
| 10 | entrypoint pip 依赖网络 | 中 | 同上,应写入镜像 |
| 11 | ~~废弃代码目录未清理~~ | — | ✅ 已清理归档(2026-05-03 |
---