trading.ai/docker-compose.yml
2025-08-14 10:06:19 +08:00

104 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: '3.8'
services:
# 选币引擎服务
coin-selector:
build: .
container_name: trading-ai-selector
restart: unless-stopped
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./config.py:/app/config.py:ro # 只读挂载配置文件
- trading-db:/app/trading.db
environment:
- PYTHONPATH=/app
- TZ=Asia/Shanghai
# 钉钉配置可选也可以通过config.py配置
- DINGTALK_WEBHOOK_URL=${DINGTALK_WEBHOOK_URL:-}
- DINGTALK_WEBHOOK_SECRET=${DINGTALK_WEBHOOK_SECRET:-}
# 选币配置
- USE_MARKET_CAP_RANKING=${USE_MARKET_CAP_RANKING:-true}
- COIN_LIMIT=${COIN_LIMIT:-50}
command: python coin_selection_engine.py
healthcheck:
test: ["CMD", "python", "-c", "import os; exit(0 if os.path.exists('/app/trading.db') else 1)"]
interval: 30s
timeout: 10s
retries: 3
networks:
- trading-network
# Web仪表板服务
web-dashboard:
build: .
container_name: trading-ai-web
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./static:/app/static
- ./templates:/app/templates
- trading-db:/app/trading.db
environment:
- PYTHONPATH=/app
- TZ=Asia/Shanghai
- FLASK_ENV=production
command: python web_app.py
depends_on:
- coin-selector
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5000/health"]
interval: 30s
timeout: 10s
retries: 3
networks:
- trading-network
# 定时调度服务
scheduler:
build: .
container_name: trading-ai-scheduler
restart: unless-stopped
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./config.py:/app/config.py:ro
- trading-db:/app/trading.db
environment:
- PYTHONPATH=/app
- TZ=Asia/Shanghai
- DINGTALK_WEBHOOK_URL=${DINGTALK_WEBHOOK_URL:-}
- DINGTALK_WEBHOOK_SECRET=${DINGTALK_WEBHOOK_SECRET:-}
command: python scheduler.py
depends_on:
- coin-selector
networks:
- trading-network
# 网络配置
networks:
trading-network:
driver: bridge
# 数据卷
volumes:
trading-db:
driver: local
# 环境变量文件示例
# 创建 .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
#
# # Binance API可选
# BINANCE_API_KEY=your_api_key
# BINANCE_SECRET=your_secret