本文档详细描述了TradingAgents-CN v0.1.7版本引入的容器化架构设计,包括Docker Compose多服务编排、开发环境优化和生产部署策略。
docker-compose up -d
一键部署graph TB
subgraph "🌐 外部访问"
USER[用户]
BROWSER[浏览器]
end
subgraph "🐳 Docker Compose 环境"
subgraph "应用容器"
WEB[TradingAgents-Web<br/>Streamlit:8501]
end
subgraph "数据存储容器"
MONGO[MongoDB<br/>数据库:27017]
REDIS[Redis<br/>缓存:6379]
end
subgraph "管理界面容器"
ME[Mongo Express<br/>数据库管理:8081]
RC[Redis Commander<br/>缓存管理:8082]
end
subgraph "数据卷"
MV[mongodb_data]
RV[redis_data]
end
end
USER --> BROWSER
BROWSER --> WEB
WEB --> MONGO
WEB --> REDIS
ME --> MONGO
RC --> REDIS
MONGO --> MV
REDIS --> RV
web:
build: .
ports:
- "8501:8501"
volumes:
- .env:/app/.env
- ./web:/app/web
- ./tradingagents:/app/tradingagents
depends_on:
- mongodb
- redis
environment:
- MONGODB_URL=mongodb://mongodb:27017/tradingagents
- REDIS_URL=redis://redis:6379
功能特性:
mongodb:
image: mongo:4.4
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
environment:
- MONGO_INITDB_DATABASE=tradingagents
存储内容:
redis:
image: redis:6-alpine
ports:
- "6379:6379"
volumes:
- redis_data:/data
缓存内容:
mongo-express:
image: mongo-express
ports:
- "8081:8081"
environment:
- ME_CONFIG_MONGODB_SERVER=mongodb
- ME_CONFIG_MONGODB_PORT=27017
depends_on:
- mongodb
管理功能:
redis-commander:
image: rediscommander/redis-commander
ports:
- "8082:8081"
environment:
- REDIS_HOSTS=local:redis:6379
depends_on:
- redis
管理功能:
volumes:
# 环境配置
- .env:/app/.env
# 核心代码实时同步
- ./web:/app/web
- ./tradingagents:/app/tradingagents
- ./scripts:/app/scripts
# 测试工具
- ./test_conversion.py:/app/test_conversion.py
# 进入容器调试
docker exec -it TradingAgents-web bash
# 查看实时日志
docker logs TradingAgents-web --follow
# 执行测试脚本
docker exec TradingAgents-web python test_conversion.py
networks:
default:
name: tradingagents_network
特性:
服务 | 内部端口 | 外部端口 | 用途 |
---|---|---|---|
Web应用 | 8501 | 8501 | 主界面访问 |
MongoDB | 27017 | 27017 | 数据库连接 |
Redis | 6379 | 6379 | 缓存连接 |
Mongo Express | 8081 | 8081 | 数据库管理 |
Redis Commander | 8081 | 8082 | 缓存管理 |
volumes:
mongodb_data:
driver: local
redis_data:
driver: local
# MongoDB备份
docker exec TradingAgents-mongodb mongodump --out /backup
# Redis备份
docker exec TradingAgents-redis redis-cli BGSAVE
# 数据卷备份
docker run --rm -v mongodb_data:/data -v $(pwd):/backup alpine tar czf /backup/mongodb_backup.tar.gz -C /data .
services:
web:
deploy:
resources:
limits:
cpus: '2.0'
memory: 4G
reservations:
memory: 2G
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8501"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# 生产环境安全设置
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=${MONGO_PASSWORD}
- ME_CONFIG_BASICAUTH_USERNAME=admin
- ME_CONFIG_BASICAUTH_PASSWORD=${ADMIN_PASSWORD}
# 查看服务状态
docker-compose ps
# 查看资源使用
docker stats
# 查看服务日志
docker-compose logs -f web
graph TB
subgraph "微服务架构"
API[API网关]
AUTH[认证服务]
ANALYSIS[分析服务]
DATA[数据服务]
EXPORT[导出服务]
NOTIFY[通知服务]
end
API --> AUTH
API --> ANALYSIS
API --> DATA
API --> EXPORT
API --> NOTIFY
最后更新: 2025-07-13
版本: cn-0.1.7
贡献者: @breeze303