alphax/README_DOCKER.md
2026-05-13 22:32:50 +08:00

3.7 KiB
Raw Blame History

AlphaX Docker 化副本

这是从当前运行中的 /home/ubuntu/quant_monitor/altcoin 复制出来的独立 Docker 化副本,目录:

/home/ubuntu/quant_monitor/alphax-docker

重要原则

  • 这个目录是副本,不影响当前正在运行的 AlphaX。
  • 默认 docker-compose.yml 将 Web 暴露到宿主机 8191,避免占用当前线上 8190
  • 调度器默认 ALPHAX_SCHEDULER_DRY_RUN=1,第一次启动不会真的跑筛选/确认/跟踪任务。
  • SQLite 数据挂载在 ./data/altcoin_monitor.db,容器内路径为 /app/data/altcoin_monitor.db
  • 镜像构建上下文通过 .dockerignore 排除了 data/archive/、真实 .env 和所有 DB 文件,避免把数据库/密钥打进镜像。

快速启动

cd /home/ubuntu/quant_monitor/alphax-docker
cp .env.example .env
# 如需推送,编辑 .env 填 ALTCOIN_FEISHU_WEBHOOK

docker compose build
docker compose up -d alphax-web
curl -s http://127.0.0.1:8191/api/stats

确认 Web 正常后,如果要启动调度器:

docker compose up -d alphax-scheduler

调度器默认 dry-run只打印计划不写库。确认日志无误后.env 或 compose 里的:

ALPHAX_SCHEDULER_DRY_RUN=0

再重启:

docker compose up -d alphax-scheduler

服务说明

  • alphax-webFastAPI + 静态页面,容器内 8190宿主机 8191。
  • alphax-scheduler:轻量 Python 调度器,串行执行任务,避免 SQLite 并发锁。

调度任务与当前线上大致对齐:

任务 脚本 间隔
事件舆情 event_driven_screener.py --once 60s
价格跟踪 price_tracker.py 180s
爆发确认 altcoin_confirm.py 600s
粗筛/细筛 altcoin_screener.py 900s
舆情采集 sentiment_monitor.py --collect 1800s
复盘 review_engine.py 24h

验证命令

cd /home/ubuntu/quant_monitor/alphax-docker
python3 -m py_compile altcoin_db.py auth_db.py opportunity_lifecycle.py altcoin_screener.py altcoin_confirm.py price_tracker.py event_driven_screener.py sentiment_monitor.py review_engine.py web_server.py docker/scheduler.py scripts/validate_docker_layout.py
python3 scripts/validate_docker_layout.py
python3 scripts/validate_state_machine.py
python3 scripts/validate_push_state_flow.py
python3 scripts/validate_signal_recency.py

Docker 配置验证:

docker compose config

当前机器如果没有 Docker只能做离线文件/语法/DB 校验;到有 Docker 的机器上再执行 build/up。

数据迁移

当前副本是从线上目录复制来的,包含复制时刻的 altcoin_monitor.db。为了避免误影响线上,容器读写的是副本目录下的:

./data/altcoin_monitor.db

容器内路径通过环境变量配置:

ALPHAX_DB_PATH=/app/data/altcoin_monitor.db

如需重新以线上最新数据初始化副本,应停掉副本容器后手动复制 DB

cd /home/ubuntu/quant_monitor/alphax-docker
docker compose down
cp /home/ubuntu/quant_monitor/altcoin/altcoin_monitor.db ./data/altcoin_monitor.db

不要反向覆盖线上 DB。

打包迁移到新服务器

建议只打包代码和配置骨架,不把 DB 直接打进镜像。可以用 tar 打包整个副本目录,排除本地缓存和归档备份:

cd /home/ubuntu/quant_monitor
tar --exclude='alphax-docker/.git' \
    --exclude='alphax-docker/__pycache__' \
    --exclude='alphax-docker/.pytest_cache' \
    --exclude='alphax-docker/archive' \
    -czf alphax-docker.tar.gz alphax-docker

如果新服务器要带初始 DB可以保留 alphax-docker/data/altcoin_monitor.db;如果希望空库启动,则删除该文件,容器首次启动会创建空 DB 并由 init_db() 补表。