8f016f25df
- ORM migration: models/ops 重构 - deploy: 标准化 systemd timer/service 部署体系 - MCP server: 5 个只读工具(任务/状态/数据集) - daily check: 数据一致性巡检 - watch: task_watch 后台监控 - kline_daily: 麦蕊优先,时间门禁15:00 - 删除: task_industry_sector, task_sector_features
86 lines
2.3 KiB
YAML
86 lines
2.3 KiB
YAML
# docker-compose.yml — 一键起 market_sync 数据同步服务
|
||
#
|
||
# 包含:
|
||
# - postgres : PostgreSQL 16(market_data schema 的主库)
|
||
# - market_sync : 数据同步 + dashboard + scheduler(单进程)
|
||
#
|
||
# 用法:
|
||
# docker compose up -d # 后台启动
|
||
# docker compose logs -f market_sync # 看同步日志
|
||
# docker compose exec market_sync \
|
||
# python -m app.entrypoints.cli sync stock_node --type2 2,3
|
||
#
|
||
version: "3.9"
|
||
|
||
services:
|
||
postgres:
|
||
image: postgres:16-alpine
|
||
restart: unless-stopped
|
||
environment:
|
||
POSTGRES_USER: market_sync
|
||
POSTGRES_PASSWORD: market_sync
|
||
POSTGRES_DB: market_data
|
||
ports:
|
||
- "5432:5432"
|
||
volumes:
|
||
- pgdata:/var/lib/postgresql/data
|
||
healthcheck:
|
||
test: ["CMD-SHELL", "pg_isready -U market_sync -d market_data"]
|
||
interval: 10s
|
||
timeout: 3s
|
||
retries: 5
|
||
|
||
market_sync:
|
||
build:
|
||
context: .
|
||
dockerfile: Dockerfile
|
||
image: market_sync:latest
|
||
restart: unless-stopped
|
||
depends_on:
|
||
postgres:
|
||
condition: service_healthy
|
||
environment:
|
||
# 运行模式:Docker 模式使用进程内 scheduler
|
||
RUNTIME_MODE: docker
|
||
# PG 连接(指向同 compose 的 postgres 服务)
|
||
PG_HOST: postgres
|
||
PG_PORT: "5432"
|
||
PG_USER: market_sync
|
||
PG_PASSWORD: market_sync
|
||
PG_DB_NAME: market_data
|
||
DB_BACKEND: pg
|
||
# 调度
|
||
SCHEDULER_TIMEZONE: Asia/Shanghai
|
||
SCHEDULER_TICK_SECONDS: "5"
|
||
SCHEDULER_AUTO_SEED: "true"
|
||
# API
|
||
API_HOST: 0.0.0.0
|
||
API_PORT: "8100"
|
||
# 日志
|
||
LOG_DIR: /app/logs
|
||
LOG_LEVEL: INFO
|
||
# 数据源开关
|
||
DS_BAOSTOCK_ENABLED: "true"
|
||
DS_SINA_ENABLED: "true"
|
||
# 凭证(可放进 .env / secrets 文件,避免明文)
|
||
MAIRUI_LICENCE: ${MAIRUI_LICENCE:-}
|
||
XUEQIU_TOKEN: ${XUEQIU_TOKEN:-}
|
||
# 麦蕊限速(钻石 100 RPS 留 buffer;服务化后保守点)
|
||
MAIRUI_RPS_LIMIT: "10"
|
||
# 节假日
|
||
TRADING_HOLIDAYS: ${TRADING_HOLIDAYS:-}
|
||
ports:
|
||
- "8100:8100"
|
||
volumes:
|
||
# 持久化日志(任务失败时方便排查)
|
||
- sync_logs:/app/logs
|
||
healthcheck:
|
||
test: ["CMD", "curl", "-fsS", "http://localhost:8100/api/health"]
|
||
interval: 60s
|
||
timeout: 5s
|
||
retries: 3
|
||
start_period: 30s
|
||
|
||
volumes:
|
||
pgdata:
|
||
sync_logs: |