104 lines
2.6 KiB
YAML
104 lines
2.6 KiB
YAML
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 |