services: alphax-web: build: context: . dockerfile: Dockerfile image: alphax:local container_name: alphax-web restart: unless-stopped env_file: - .env environment: PORT: "8190" ALPHAX_DB_PATH: "/app/data/altcoin_monitor.db" # 仅当 app_user 表为空时创建默认管理员;已有用户或迁移旧库时不会覆盖。 ALPHAX_BOOTSTRAP_ADMIN: "${ALPHAX_BOOTSTRAP_ADMIN:-1}" ALPHAX_DEFAULT_ADMIN_EMAIL: "${ALPHAX_DEFAULT_ADMIN_EMAIL:-admin@alphax.local}" ALPHAX_DEFAULT_ADMIN_PASSWORD: "${ALPHAX_DEFAULT_ADMIN_PASSWORD:-AlphaXAdmin123}" command: ["web"] ports: - "8191:8190" volumes: - ./data:/app/data - ./logs:/app/logs - ./rules.yaml:/app/rules.yaml healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8190/api/stats >/dev/null || exit 1"] interval: 30s timeout: 10s retries: 3 start_period: 40s alphax-scheduler: image: alphax:local container_name: alphax-scheduler restart: unless-stopped depends_on: alphax-web: condition: service_started env_file: - .env environment: # 本地 Docker 副本需要真实跑链路,方便验证筛选/确认/跟踪/复盘结果。 # 调度器仍然单进程串行执行,避免 SQLite 写锁。 ALPHAX_SCHEDULER_DRY_RUN: "0" ALPHAX_DB_PATH: "/app/data/altcoin_monitor.db" command: ["scheduler"] volumes: - ./data:/app/data - ./logs:/app/logs - ./rules.yaml:/app/rules.yaml