From 6e1c178c241b9b3fbbf4c8d8f40317f0ebe0383b Mon Sep 17 00:00:00 2001 From: shy3130 Date: Thu, 22 Oct 2026 21:51:09 +0800 Subject: [PATCH] =?UTF-8?q?docs(deploy):=20=E8=A1=A5=E5=85=85=20host.docke?= =?UTF-8?q?r.internal=20=E8=AE=BF=E9=97=AE=E4=B8=8E=20data=20=E6=8C=82?= =?UTF-8?q?=E8=BD=BD=E4=BF=9D=E6=8A=A4=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + docs/custom-data-source.md | 2 ++ docs/deployment.md | 3 +++ 3 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 847cdc43..63978118 100644 --- a/README.md +++ b/README.md @@ -427,6 +427,7 @@ docker run -d --name tsp -p 3018:3018 -v ${PWD}/data:/app/data ghcr.io/shy3130/t 本项目每次推送都由 GitHub Actions 自动构建多架构镜像并发布到 GHCR,拿来即用: - 需要配置时:从 [.env.example](./.env.example) 复制出 `.env`,命令里加 `--env-file .env`。 +- Linux `docker run` 部署:容器内要通过 `host.docker.internal` 访问宿主机服务(如自定义数据源)时,命令需加 `--add-host=host.docker.internal:host-gateway`;升级重建容器时务必保留 `-v ${PWD}/data:/app/data` 挂载并提前备份 `data/`,否则容器层数据会随旧容器静默丢失(详见 [docs/deployment.md](./docs/deployment.md))。 - 跑自己改过的代码:fork 后到仓库 **Actions** 页启用 workflow(fork 默认禁用),构建出的 `ghcr.io/<你的用户名>/tick-stock-panel` 用法相同。 - 想用 compose 编排(挂载 `.env` / `tiers.yaml`):参考 [docker-compose.yml](./docker-compose.yml),把 `build:` 段换成 `image: ghcr.io/shy3130/tick-stock-panel:latest`。 - 现成镜像默认不含老 CPU 兼容内核(体积考虑),有此需求请用方式 B 自构建,详见 [docs/deployment.md](./docs/deployment.md)。 diff --git a/docs/custom-data-source.md b/docs/custom-data-source.md index 0986a4b3..423ff644 100644 --- a/docs/custom-data-source.md +++ b/docs/custom-data-source.md @@ -30,6 +30,8 @@ data/data_sources/*.yaml Dev 模式下,默认位置是项目根目录的 `data/`;Docker 部署中,项目的 `data/` 会挂载为容器内的 `/app/data`。可通过 `DATA_DIR` 覆盖。 +Docker 里 URL 填 `127.0.0.1` 指的是容器自身:数据源服务跑在宿主机时,应改用 `host.docker.internal`(Linux `docker run` 需加 `--add-host=host.docker.internal:host-gateway` 才能解析,compose 已内置该映射;也可直接用宿主机内网 IP,如 `172.17.0.1`)。 + 修改 YAML 后可在「设置 -> 数据源」点击「重新加载」,或调用: ```bash diff --git a/docs/deployment.md b/docs/deployment.md index b26b2f31..dd3bfd34 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -16,6 +16,7 @@ docker run -d --name tsp -p 3018:3018 -v ${PWD}/data:/app/data ghcr.io/shy3130/t ``` - 需要配置时:从 `.env.example` 复制出 `.env`,命令里加 `--env-file .env`。 +- 自定义数据源等服务跑在宿主机、容器内需通过 `host.docker.internal` 访问时,Linux 的 `docker run` 要在命令里加 `--add-host=host.docker.internal:host-gateway`(Docker Desktop 的 macOS/Windows 默认已可解析;方式 B 的 compose 已在 `extra_hosts` 配好),否则报 `Name or service not known`。 - 镜像默认不含 `legacy-cpu` / `backtest` extras —— 老 CPU(无 AVX2)或需要 vectorbt 回测时,请用方式 B 通过 `BACKEND_EXTRAS` 自构建。 - 跑自己改过的代码:fork 后到仓库 Actions 页启用 workflow(fork 默认禁用),构建出的 `ghcr.io/<你的用户名>/tick-stock-panel` 用法相同。 - 想要 compose 全套挂载(`.env` / `tiers.yaml` / 数据卷):参考根目录 `docker-compose.yml`,把 `build:` 段换成 `image: ghcr.io/shy3130/tick-stock-panel:latest`。 @@ -118,6 +119,8 @@ git pull > 用方式 A 镜像直跑(无本地仓库)的用户:`docker pull ghcr.io/shy3130/tick-stock-panel:latest` 后删除旧容器重跑;compose 换 `image:` 的用户执行 `docker compose pull && docker compose up -d`。 +> ⚠️ **方式 A 重建容器时必须保留原有的 `-v ${PWD}/data:/app/data` 挂载参数。** 遗漏挂载后新数据会写进容器层,随旧容器删除而**静默丢失**;之后重新挂载,读到的会是宿主机目录里的旧副本,表现为「配置被重置回默认值」。升级前建议先备份 `data/` 目录。 + **整个 `data/` 目录都不纳入 git** —— 行情 K线、财务、自选、回测、监控记录,乃至概念/行业扩展数据,全部是程序运行时生成/拉取的用户数据,`git pull` 物理上无法影响它们。新用户首次启动时,概念/行业两份扩展数据会自动从远程接口拉取,无需任何手动操作。 > ⚠️ **切勿使用以下命令"解决冲突"或"清理",它们会一次性删光 `data/` 下所有未被 git 跟踪的数据:**