)
Docker部署TradingAgents-Astock完整指南从构建镜像到Web UI上线含中文字体坑【免费下载链接】TradingAgents-astockA股多Agent投研框架 — 适配A股数据源(龙虎榜/游资/解禁等)7位分析师基于A股规则的辩论决策基于TradingAgents深度改造适配大A。A-share multi-agent investment research framework — 7 AI analysts, bull/bear debate, risk assessment。项目地址: https://gitcode.com/gh_mirrors/tr/TradingAgents-astock本文带你用 Docker 部署TradingAgents-Astock—— 一个适配 A 股数据源龙虎榜/游资/解禁的多 Agent 投研框架7 位 AI 分析师基于 A 股规则辩论决策。全程只需 3 条命令构建镜像、配置.env、启动 Web UI最后还会讲透两个最坑的部署问题容器内 PDF 导出的中文字体缺失和命名卷的权限报错。一、准备工作克隆仓库 准备 .env前提已安装 Docker 且支持docker compose。1. 克隆代码并进入目录git clone https://gitcode.com/gh_mirrors/tr/TradingAgents-astock cd TradingAgents-astock2. 创建.env文件LLM 密钥配置按供应商任选其一# DeepSeek 示例国内直连性价比高 DEEPSEEK_API_KEYsk-xxx # 或 MiniMax # MINIMAX_API_KEYsk-xxx # 或通义千问 # DASHSCOPE_API_KEYsk-xxx注意各供应商用各自的环境变量名如ZHIPU_API_KEY、XAI_API_KEY不是通用的OPENAI_API_KEY完整清单见 README.md「配置 LLM」一节。二、构建镜像读懂 Dockerfile 的三个关键设计TradingAgents-Astock 的 Dockerfile 采用多阶段构建有 3 个值得了解的设计都是真实踩坑后的修复设计作用对应坑双阶段构建builder slim 运行镜像依赖装在/opt/venv运行镜像干净、体积小环境隔离安装fonts-noto-cjk中文字体PDF 报告fpdf2 渲染在容器内能正常显示中文详见第四节的字体坑预建~/.tradingagents目录并归属appuser命名卷挂载时继承正确属主详见第四节的权限坑构建命令docker compose build构建过程会在 docker-compose.yml 中定义的tradingagents服务下打包整个项目产物为一个包含tradingagentsCLI和tradingagents-webWeb UI两个入口命令的镜像。三、一键启动 Web UI3 条命令上线1. 启动 Web 服务docker compose up web2. 打开浏览器访问http://localhost:85013. 在侧边栏配置后即可分析「LLM 供应商」选你.env里配置的那家配置会持久化重开标签页自动恢复输入 6 位 A 股代码 分析日期点击「开始分析」12 阶段 pipeline 实时显示7 分析师 → 质量门控 → 多空辩论 → 风控 → 最终决策报告支持一键导出Markdown零依赖或PDF依赖镜像内中文字体见下文⚠️常见报错容器启动提示File does not exist: web/app.py 原因是直接写了streamlit run web/app.py它依赖工作目录。compose 的web服务已固定入口为tradingagents-web由 web/launch.py 按文件绝对路径解析与工作目录无关用docker compose up web即可绕开此问题。四、CLI 模式交互式跑分析不需要网页时用 compose 里默认的 CLI 服务docker compose run --rm tradingagents进入交互式命令行输入股票代码即可启动完整投研流程分析过程如下运行结束时--rm会自动清理容器但数据不会丢——缓存、日志、记忆日志都保存在命名卷里见下节。五、两个必知的坑中文字体 卷权限这两个坑都有完整的 issue 记录升级镜像即可根治坑 1导出 PDF 报「未找到中文字体」现象Web UI 点导出 PDF提示找不到中文字体。根因python:3.12-slim基础镜像不带任何 CJK 字体PDF 渲染函数_find_cjk_font()返回None直接抛错。修复Dockerfile 运行阶段已内置apt-get install -y fonts-wqy-microhei fonts-noto-cjk旧镜像处理重新docker compose build即可临时方案是改用 Markdown 导出零依赖永远可用。坑 2启动报[Errno 13] Permission denied: /home/appuser/.tradingagents/cache完整分析见 issues/005-docker-volume-permission.md根因命名卷tradingagents_data挂载到/home/appuser/.tradingagents时若镜像里没预建该目录Docker 会把空挂载点建成root:root而容器内进程以appuser运行写缓存直接被拒。修复新版 Dockerfile 在切换用户后预建cache/logs/memory三个子目录并归属appuser空命名卷会继承该属主。老数据卷升级步骤git pull docker compose build --no-cache # 保留旧卷时修正属主卷名以实际为准 docker run --rm -v tradingagents_data:/d alpine chown -R 1000:1000 /d # 或干脆删卷重建 docker volume rm tradingagents_data六、可选项搭配 Ollama 本地模型docker-compose.yml 内置了ollamaprofile不想用 API 计费的话docker compose --profile ollama up它同时拉起 Ollama 容器和配置了LLM_PROVIDERollama的应用容器若 Ollama 跑在别的机器上则在.env填BACKEND_URLhttp://主机:11434/v1即可。七、常见问题速查报错 / 现象原因解决File does not exist: web/app.py入口依赖 CWD用docker compose up web入口为tradingagents-webPDF 导出报「未找到中文字体」slim 镜像无 CJK 字体重新docker compose build已内置 fonts-noto-cjkPermission denied: .../.tradingagents/cache命名卷属主为 root预建目录的新镜像重建旧卷先chown 1000:1000端口 8501 访问不通容器未监听 0.0.0.0compose 已设STREAMLIT_SERVER_ADDRESS0.0.0.0确认端口映射8501:8501总结3 步部署git clone→ 写.env→docker compose up web访问http://localhost:8501两大坑已内置修复中文字体fonts-noto-cjk和卷权限预建目录归appuser老镜像记得docker compose build --no-cache重建数据不丢所有缓存/日志/记忆落在命名卷tradingagents_data容器随手删数据仍在关键文件Dockerfile、docker-compose.yml、web/launch.py装好之后输入一个 A 股代码就能看 7 位分析师如何围绕龙虎榜、游资动向、解禁等 A 股特色数据展开多空辩论最终给出 Buy / Hold / Sell 评级。【免费下载链接】TradingAgents-astockA股多Agent投研框架 — 适配A股数据源(龙虎榜/游资/解禁等)7位分析师基于A股规则的辩论决策基于TradingAgents深度改造适配大A。A-share multi-agent investment research framework — 7 AI analysts, bull/bear debate, risk assessment。项目地址: https://gitcode.com/gh_mirrors/tr/TradingAgents-astock创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考