3.5 KiB
3.5 KiB
Trading AI - Docker 部署指南
🚀 快速开始
1. 准备配置文件
复制配置模板并填写你的配置:
cp config_example.py config.py
# 编辑 config.py,填入你的钉钉webhook配置
2. 环境变量配置(可选)
创建 .env 文件:
# 钉钉机器人配置
DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN
DINGTALK_WEBHOOK_SECRET=SEC_YOUR_SECRET
# 选币配置
USE_MARKET_CAP_RANKING=true
COIN_LIMIT=50
3. 启动服务
# 构建并启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -f
📋 服务说明
服务架构
- coin-selector: 选币引擎,执行技术分析和选币逻辑
- web-dashboard: Web仪表板,端口5000,提供可视化界面
- scheduler: 定时调度服务,自动执行选币任务
端口映射
- Web界面: http://localhost:5000
🛠️ 管理命令
# 查看运行状态
docker-compose ps
# 重启服务
docker-compose restart
# 停止服务
docker-compose down
# 查看特定服务日志
docker-compose logs coin-selector
docker-compose logs web-dashboard
docker-compose logs scheduler
# 进入容器调试
docker-compose exec coin-selector bash
# 更新服务
docker-compose pull
docker-compose up -d --build
📁 数据持久化
./data/: 数据文件目录./logs/: 日志文件目录trading-db: 数据库卷config.py: 配置文件(只读挂载)
🔧 配置说明
环境变量优先级
.env文件中的环境变量config.py文件中的配置- 默认值
重要配置项
USE_MARKET_CAP_RANKING: 是否按市值排名选币COIN_LIMIT: 分析币种数量限制DINGTALK_WEBHOOK_URL: 钉钉机器人地址DINGTALK_WEBHOOK_SECRET: 钉钉加签密钥
🔍 健康检查
所有服务都配置了健康检查:
- coin-selector: 检查数据库文件存在性
- web-dashboard: HTTP健康检查端点
- scheduler: 进程存活检查
📊 监控和日志
# 实时查看所有服务日志
docker-compose logs -f
# 查看特定时间范围的日志
docker-compose logs --since="2h" coin-selector
# 查看系统资源使用
docker stats
🚨 故障排除
常见问题
-
TA-Lib安装失败
# 重新构建镜像 docker-compose build --no-cache -
数据库权限问题
# 检查数据卷权限 docker-compose exec coin-selector ls -la /app/ -
钉钉通知失败
# 检查配置 docker-compose exec coin-selector python setup_dingtalk.py test -
端口冲突
# 修改docker-compose.yml中的端口映射 ports: - "5001:5000" # 改为5001端口
调试模式
# 以调试模式启动
docker-compose -f docker-compose.yml -f docker-compose.debug.yml up
# 单独测试选币功能
docker-compose run --rm coin-selector python coin_selection_engine.py
🔄 定期维护
# 清理未使用的Docker资源
docker system prune -a
# 备份数据库
docker-compose exec coin-selector cp /app/trading.db /app/data/backup_$(date +%Y%m%d).db
# 清理旧日志
find ./logs -name "*.log" -mtime +7 -delete
📈 生产环境建议
- 资源限制: 在docker-compose.yml中添加资源限制
- 日志轮转: 配置日志轮转避免磁盘空间不足
- 监控报警: 集成监控系统(如Prometheus)
- 备份策略: 定期备份数据库和配置文件
- 安全加固: 使用非root用户运行容器