92 lines
2.2 KiB
YAML
92 lines
2.2 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
# Signal Generator Scheduler - 定时生成交易信号
|
|
scheduler:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: tradus-scheduler
|
|
command: python -u scheduler.py
|
|
env_file: .env
|
|
volumes:
|
|
- ./output:/app/output # 输出信号文件
|
|
environment:
|
|
# Symbol Configuration
|
|
- SYMBOL=BTCUSDT
|
|
|
|
# Signal generation interval
|
|
- SIGNAL_INTERVAL_MINUTES=15 # 每15分钟生成一次信号
|
|
|
|
# Note: LLM API and DingTalk configs are loaded from .env file
|
|
|
|
- LOG_LEVEL=INFO
|
|
|
|
networks:
|
|
- tradus-network
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
# Paper Trading - 模拟盘交易
|
|
paper-trading:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: tradus-paper-trading
|
|
command: python -u -m trading.realtime_trader
|
|
env_file: .env
|
|
volumes:
|
|
- ./output:/app/output # 共享信号文件和交易状态
|
|
environment:
|
|
- SYMBOL=BTCUSDT
|
|
- LOG_LEVEL=INFO
|
|
depends_on:
|
|
- scheduler
|
|
networks:
|
|
- tradus-network
|
|
restart: unless-stopped
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
# Web Dashboard - 模拟盘状态展示
|
|
dashboard:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: tradus-dashboard
|
|
command: python -m uvicorn web.api:app --host 0.0.0.0 --port 8000
|
|
env_file: .env
|
|
volumes:
|
|
- ./output:/app/output # 共享交易状态文件
|
|
ports:
|
|
- "18080:8000" # 使用18080端口避免冲突
|
|
environment:
|
|
- LOG_LEVEL=INFO
|
|
depends_on:
|
|
- paper-trading
|
|
networks:
|
|
- tradus-network
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/api/status')"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 10s
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
networks:
|
|
tradus-network:
|
|
driver: bridge
|