49 lines
1.9 KiB
YAML
49 lines
1.9 KiB
YAML
services:
|
|
genesis:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
container_name: genesis
|
|
restart: unless-stopped
|
|
|
|
# ── Mount source code + config ──────────────────────────────────────────
|
|
# Code changes only need: docker compose restart
|
|
# Dependency changes need: docker compose up -d --build
|
|
volumes:
|
|
- ./core:/opt/hermes-agent/core
|
|
- ./strategies:/opt/hermes-agent/strategies
|
|
- ./configs:/opt/hermes-agent/configs
|
|
- ./backtest:/opt/hermes-agent/backtest
|
|
- ./.env:/opt/hermes-agent/.env:ro
|
|
- genesis_logs:/var/log/hermes
|
|
- genesis_strategy_logs:/var/log
|
|
- genesis_cache:/tmp
|
|
|
|
# ── Environment overrides (optional) ────────────────────────────────────
|
|
environment:
|
|
- TZ=UTC
|
|
- GENESIS_MODE=live # Set to "analyze" to disable execution
|
|
|
|
# ── Health check — confirms Mt5Bridge is reachable ──────────────────────
|
|
healthcheck:
|
|
test: ["CMD", "python3", "-c",
|
|
"import os,requests; r=requests.get(os.getenv('MT5_BRIDGE_URL','http://localhost:13485')+'/health',headers={'X-API-Key':os.getenv('MT5_BRIDGE_KEY','')},timeout=5); exit(0 if r.status_code==200 else 1)"]
|
|
interval: 60s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
# ── Resource limits ──────────────────────────────────────────────────────
|
|
mem_limit: 512m
|
|
cpus: "0.5"
|
|
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
|
|
volumes:
|
|
genesis_logs:
|
|
genesis_strategy_logs:
|
|
genesis_cache: |