3.7 KiB
3.7 KiB
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-web:FastAPI + 静态页面,容器内 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() 补表。