资讯动态

TradingAgents-CN Docker 容器化部署指南:一键构建股票分析环境

发布时间:2026/9/12 13:42:16 来源:尧图企业网站定制
TradingAgents-CN Docker 容器化部署指南一键构建股票分析环境【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CNTradingAgents-CN 是基于多智能体 LLM 的中文金融交易框架其 Docker 部署方案将 FastAPI 后端、Vue 3 前端、MongoDB、Redis 以及可选的数据库管理面板打包为可一键启动的容器化环境。本文以 docs/guides/docker-deployment-guide.md 为主体骨架结合仓库内的真实 Compose 配置与 Dockerfile 源码完整讲解前置环境准备、镜像构建、环境变量配置、服务启动、日常运维与故障排除读完即可在自己的机器上完成从零到可用的整套部署。Docker 部署的优势为什么选择 Docker一键部署docker-compose up -d即可拉起完整环境无需手工安装数据库与依赖环境一致开发、测试、生产环境使用同一镜像彻底消除在我机器上能跑的差异问题依赖管理自动处理 Python/Node 依赖、系统库pandoc、wkhtmltopdf、中文字体及版本冲突服务集成Web 应用、数据库、缓存、管理面板通过自定义网络互相联通统一编排易于维护更新、备份、恢复、清理均可在数条命令内完成。与传统部署对比特性传统部署Docker 部署部署时间需要手动安装 Python、Node、MongoDB、Redis 并逐个配置一条命令完成环境编排环境配置复杂的手动配置易出错由 Dockerfile 与 Compose 自动化配置依赖管理手动安装并处理冲突镜像内自动处理服务管理分别启动、分别守护统一生命周期管理故障排除依赖版本问题排查困难可一键重建、日志统一查看前置要求组件最低版本推荐版本说明Docker20.0最新版容器运行时Docker Compose2.0最新版通常随 Docker 一起安装内存4GB8GB需同时运行 5 个容器磁盘空间10GB20GB镜像约 1GB另有数据卷与日志安装 DockerWindows下载并安装 Docker Desktop启动后验证docker --version docker-compose --versionLinux (Ubuntu/Debian)# 1. 更新包索引 sudo apt update # 2. 安装 Docker 与 Compose sudo apt install docker.io docker-compose # 3. 启动并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 4. 将当前用户加入 docker 组避免每次 sudo sudo usermod -aG docker $USER # 5. 重新登录后验证 docker --version docker-compose --versionmacOSbrew install --cask docker # 启动 Docker Desktop 后验证 docker --version docker-compose --version部署步骤步骤 1获取代码并确认版本git clone https://github.com/hsliuping/TradingAgents-CN.git cd TradingAgents-CN # 检查版本 cat VERSION关于 Docker 镜像本地构建而非预构建当前仓库不提供可直接拉取的预构建镜像需要在本地构建。原因包括定制化需求不同用户需要不同的模型提供商与数据源配置安全考虑避免在公共镜像中包含敏感 API 密钥版本灵活性支持用户自定义修改与扩展依赖优化按需安装依赖镜像更精简。从当前仓库的 Dockerfile.backend 与 Dockerfile.frontend 可以看到构建包含的关键环节后端基础镜像python:3.10-slim-bookworm并支持通过TARGETARCH构建参数实现 amd64 / arm64 多架构构建系统依赖curl健康检查、fonts-noto-cjkNoto 中文字体保证 PDF 中文渲染、xvfb以及从官方 GitHub Release 单独下载的pandoc 3.8.2.1与wkhtmltopdf 0.12.6.1-3避免 Debian 仓库版本问题Python 依赖使用清华 PyPI 镜像加速--prefer-binary优先采用预编译 wheel显著加快 ARM 架构构建速度并额外安装pdfkit以支撑 PDF 导出前端构建node:22-alpine配合 Yarn 1.22.22--frozen-lockfile保证依赖版本一致网络超时放宽到 5 分钟yarn vite build产出静态文件后由nginx:alpine提供服务。首次构建约需 5-10 分钟最终镜像体积约 1GB。步骤 2配置环境变量# 复制配置模板 cp .env.example .env # 编辑配置文件 # Windows: notepad .env # Linux/macOS: nano .env.env.example中按[REQUIRED]必需、[RECOMMENDED]推荐、[OPTIONAL]可选三级标注了每个配置项。Docker 部署时Compose 通过env_file: - .env将变量注入容器。必需配置LLM 模型至少启用一个# LLM 模型配置 (至少配置一个) # DeepSeek (推荐 - 成本低) DEEPSEEK_API_KEYsk-your_deepseek_api_key_here DEEPSEEK_BASE_URLhttps://api.deepseek.com DEEPSEEK_ENABLEDtrue # 阿里百炼 (推荐 - 中文优化) DASHSCOPE_API_KEYyour_dashscope_api_key_here DASHSCOPE_ENABLEDtrue # Google AI (推荐 - 推理能力强Gemini 模型) GOOGLE_API_KEYyour_google_api_key_here GOOGLE_ENABLEDtrue仓库的 .env.dockerDockerfile 构建时复制为容器内.env还列出了更完整的模型提供商矩阵OpenAI、文心千帆Qianfan、Anthropic、OpenRouter、AiHubMix、AI302、硅基流动SiliconFlow、One API / New API 聚合平台以及通用 OpenAI 兼容端点CUSTOM_OPENAI_API_KEY。需要特别说明的是在docker-compose.hub.nginx.yml中environment段必须显式声明${DEEPSEEK_API_KEY}这类变量才能覆盖镜像内占位符否则容器会使用构建时写入的默认值。可选配置# 数据源配置 # 默认中国股票数据源: akshare, tushare, baostock 三选一 DEFAULT_CHINA_DATA_SOURCEakshare TUSHARE_TOKENyour_tushare_token FINNHUB_API_KEYyour_finnhub_key # 数据同步调度Docker 环境下默认关闭可按需开启 TUSHARE_UNIFIED_ENABLEDfalse AKSHARE_UNIFIED_ENABLEDfalse BAOSTOCK_UNIFIED_ENABLEDfalse # 安全配置生产环境务必修改 JWT_SECRETyour-super-secret-jwt-key-change-in-production CSRF_SECRETyour-csrf-secret-key-change-in-production.env.docker中还可以看到与 Docker 紧密相关的专项配置例如数据库连接串MONGODB_URLmongodb://admin:tradingagents123mongodb:27017/tradingagentscn?authSourceadminmongodb为 Compose 服务名authSourceadmin表示在 admin 库中校验用户Redis 连接串REDIS_URLredis://:tradingagents123redis:6379/0连接池与超时MONGO_MAX_CONNECTIONS100、MONGO_CONNECT_TIMEOUT_MS30000原 10 秒处理大量历史数据时调大、REDIS_MAX_CONNECTIONS50成本跟踪ENABLE_COST_TRACKINGtrue、COST_ALERT_THRESHOLD100.0人民币警告阈值调度任务SYNC_STOCK_BASICS_TIME06:30、QUOTES_INGEST_INTERVAL_SECONDS360、QUOTES_TUSHARE_HOURLY_LIMIT2Tushare 免费用户 rt_k 接口每小时 2 次限制等。步骤 3构建并启动服务# 首次启动构建镜像并启动所有服务 docker-compose up -d --build # 后续启动镜像已构建 docker-compose up -d # 查看服务状态 docker-compose ps # 查看启动日志 docker-compose logs -f需要说明的是本指南最初编写于 v0.1.7单应用 Streamlit 架构主界面 8501 端口而当前仓库已演进到 v1.0.0-preview 的前后端分离架构。因此请以仓库根目录的 docker-compose.yml 为准它定义了以下服务服务容器名端口映射说明backendtradingagents-backend8000:8000FastAPI 后端python -m uvicorn app.main:app --host 0.0.0.0 --port 8000frontendtradingagents-frontend3000:80Vue 3 前端Nginx 托管静态文件SPAmongodbtradingagents-mongodb27017:27017mongo:4.4带 root 认证redistradingagents-redis6379:6379redis:7-alpineAOF 持久化 密码redis-commandertradingagents-redis-commander8081:8081Redis 管理面板management profilemongo-expresstradingagents-mongo-express8082:8081MongoDB 管理面板management profile几个值得注意的编排细节均可在 docker-compose.yml 中验证启动顺序控制backend通过depends_on: mongodb/redis: condition: service_healthy严格等待数据库健康检查通过后才启动frontend等待backend健康避免连接失败健康检查后端curl http://localhost:8000/api/healthMongoDB 执行db.runCommand(ping)Redis 用redis-cli incr ping前端 Nginx 用wget --spider数据卷tradingagents_mongodb_data与tradingagents_redis_data两个命名卷持久化数据库与缓存数据down不会删除数据宿主机目录./logs、./config、./data映射进容器便于查看与备份管理面板按需启用redis-commander 与 mongo-express 声明了profiles: [management]仅当显式指定 profile 时才启动即docker-compose --profile management up -d日志滚动各服务日志采用json-file驱动并限制单文件 100MB数据库 50MB、最多保留 3 份数据库 2 份防止磁盘被日志撑爆。步骤 4验证部署docker-compose ps应看到 backend、frontend、mongodb、redis 均为running (healthy)状态。若启用了 management profile还会有 redis-commander 与 mongo-express。步骤 5访问应用服务地址用途前端主界面http://localhost:3000股票分析界面后端 APIhttp://localhost:8000/api/healthFastAPI 健康检查MongoDB 管理需 profilehttp://localhost:8082Mongo ExpressRedis 管理需 profilehttp://localhost:8081Redis Commander前端容器内的 Nginx 配置见 docker/nginx.conf启用了 Gzip 压缩、SPA 路由回退try_files $uri $uri/ /index.html、静态资源 1 年长缓存与index.html禁用缓存并内置/health探活端点。使用指南进行股票分析访问前端主界面 http://localhost:3000选择 LLM 模型推荐 DeepSeek成本低中文场景也可选通义千问输入股票代码A 股如 000001、600519、000858美股如 AAPL、TSLA、MSFT选择分析深度快速/标准/深度启动多智能体分析流程研究、分析、交易、风控等智能体协作导出报告Word/PDF/Markdown容器内已内置 pandoc、wkhtmltopdf 与中文字体。管理数据库与缓存启动 management profile 后访问 Mongo Express http://localhost:8082默认账号admin/tradingagents123浏览tradingagentscn数据库中的分析结果访问 Redis Commander http://localhost:8081查看缓存的股价与分析数据清理过期缓存。日常管理服务管理# 启动服务 docker-compose up -d # 停止服务保留数据卷 docker-compose down # 停止并删除数据卷慎用会清空数据库 docker-compose down -v # 重启服务 docker-compose restart # 查看服务状态 docker-compose ps # 查看指定服务日志 docker-compose logs -f backend docker-compose logs -f mongodb docker-compose logs -f redis智能启动脚本仓库提供了自动判断是否需要重建镜像的智能启动脚本逻辑见 scripts/smart_start.sh镜像不存在或检测到代码变化排除 md 文档与脚本时执行--build否则快速启动。# Windows (PowerShell) powershell -ExecutionPolicy Bypass -File scripts\smart_start.ps1 # Linux/macOS chmod x scripts/smart_start.sh ./scripts/smart_start.sh--build参数的使用场景可参考 docs/docker/startup-guide.md首次启动、代码修改、requirements.txt变化、Dockerfile 修改时需要日常重启、容器异常重启不需要。数据管理# 备份 MongoDB docker exec tradingagents-mongodb mongodump --out /backup # 备份 Redis触发持久化 docker exec tradingagents-redis redis-cli -a tradingagents123 BGSAVE # 清理缓存 docker exec tradingagents-redis redis-cli -a tradingagents123 FLUSHALL # 查看数据库使用情况 docker exec tradingagents-mongodb mongo -u admin -p tradingagents123 --authenticationDatabase admin --eval db.stats()更新应用# 1. 停止服务 docker-compose down # 2. 更新代码 git pull origin main # 3. 重新构建镜像 docker-compose build # 4. 启动服务 docker-compose up -d故障排除1. 端口冲突问题服务启动失败提示端口被占用。解决检查端口占用后修改 docker-compose.yml 中的端口映射# 检查端口占用 netstat -tulpn | grep :3000 # Linux lsof -i :3000 # Linux/macOS netstat -ano | findstr :3000 # Windows# docker-compose.yml 中修改端口映射宿主机端口:容器端口 ports: - 3001:80 # 前端改为 3001 - 8001:8000 # 后端改为 80012. 内存不足问题容器启动失败或运行缓慢。解决# 检查内存使用 docker stats # Docker Desktop - Settings - Resources - Memory # 建议分配至少 4GB 内存也可在生产 Compose 中为服务声明资源限制见下文高级配置。3. 数据库连接失败问题后端无法连接 MongoDB。解决# 查看数据库容器日志 docker logs tradingagents-mongodb # 检查容器网络连通性服务名解析 docker exec tradingagents-backend ping mongodb # 重启数据库服务 docker-compose restart mongodb注意容器内数据库地址必须使用 Compose服务名mongodb、redis而非localhost并且.env.docker中 MongoDB 的连接串带authSourceadmin认证参数缺少该参数会导致认证失败。4. API 密钥问题问题LLM 调用失败。解决# 检查容器内环境变量是否注入成功 docker exec tradingagents-backend env | grep API_KEY # 重新配置 .env 文件后重启 docker-compose restart backend若使用docker-compose.hub.nginx.yml拉取 Hub 镜像还需确认environment段中显式声明了对应密钥变量如DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY}否则镜像内占位符不会被覆盖。5. 镜像构建失败docker-compose down docker system prune -f docker-compose up -d --build仓库还提供了专用的 Docker 排查脚本Windows 运行scripts\debug_docker.ps1Linux/macOS 运行scripts/debug_docker.sh。性能优化# 清理无用镜像 docker image prune # 清理无用容器 docker container prune # 清理无用数据卷 docker volume prune # 查看实时资源使用 docker stats监控与维护健康检查# 查看所有服务健康状态 docker-compose ps # 查看特定服务最近日志 docker logs tradingagents-backend --tail 50 # 查看系统资源使用 docker stats --no-stream定期维护建议# 每周备份数据库到带日期的目录 docker exec tradingagents-mongodb mongodump --out /backup/$(date %Y%m%d) # 每周清理过期日志与镜像 docker image prune -f docker container prune -f # 更新后滚动重建 docker-compose up -d --build高级配置生产环境部署资源限制与重启策略基于 docker-compose.yml 中已有的restart: unless-stopped生产环境可进一步追加资源限制version: 3.8 services: backend: deploy: resources: limits: cpus: 2.0 memory: 4G reservations: memory: 2G restart: unless-stoppedNginx 反向代理单端口方案仓库提供了 docker-compose.hub.nginx.yml 变体前端与后端通过同一个 Nginx 容器暴露在 80 端口前端以相对路径/api访问后端彻底消除跨域问题也便于后续统一配置 HTTPS。启动方式docker-compose -f docker-compose.hub.nginx.yml up -d安全配置# MongoDB 启用 root 认证Compose 中已默认配置 MONGO_INITDB_ROOT_USERNAMEadmin MONGO_INITDB_ROOT_PASSWORDsecure_password # Redis 设置密码Compose 中通过 command 传入 REDIS_PASSWORDsecure_redis_password务必修改以下默认值.env.docker中的默认密码仅用于开箱即用的演示环境# 生成随机 JWT 密钥 python -c import secrets; print(secrets.token_urlsafe(32)) JWT_SECRET生成的随机串至少32字符 CSRF_SECRET生成的随机串同时注意 .env.example 中的警告.env文件包含敏感信息切勿提交到 Git 仓库MONGODB_PASSWORD、REDIS_PASSWORD等应在生产环境中替换为强密码。小结TradingAgents-CN 的 Docker 部署将复杂的多智能体金融分析环境收敛为复制配置 → 一条命令构建启动 → 浏览器访问三步流程。理解 docker-compose.yml 的服务编排、健康检查与数据卷机制掌握.env/ .env.docker 的配置项含义配合智能启动脚本与故障排查手段即可在开发、测试与生产环境间无缝迁移稳定运行这套基于多智能体 LLM 的中文金融交易分析框架。参考文档docs/guides/docker-deployment-guide.md、docs/docker/startup-guide.md、docs/docker/pdf-export-support.md。【免费下载链接】TradingAgents-CN基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价