tradingSystem/docker-compose.yml

46 lines
1.2 KiB
YAML
Raw Normal View History

2026-07-27 16:02:43 +08:00
# tradingSystem (PMS) 容器编排
# 用法见 README「Docker 部署」。.env 放在本文件同目录 (服务器上手工维护, 不入库)。
# 当前默认只启动 pms-web; pms-beat / pms-worker 挂在 sched profile 下,
# 调度器代码 (app/scheduler.py) 就绪后用 --profile sched 启用。
x-pms-base: &pms-base
build: .
image: pms:latest
env_file: .env
environment:
- TZ=Asia/Shanghai
volumes:
- ./logs:/app/logs
restart: unless-stopped
logging:
driver: json-file
options:
max-size: "50m"
max-file: "5"
services:
pms-web:
<<: *pms-base
container_name: pms-web
command: uvicorn app.web.main:app --host 0.0.0.0 --port 38100
ports:
- "38100:38100"
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:38100/health', timeout=3)"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
pms-beat:
<<: *pms-base
container_name: pms-beat
profiles: ["sched"]
command: celery -A app.scheduler.celery_app beat -l info
pms-worker:
<<: *pms-base
container_name: pms-worker
profiles: ["sched"]
command: celery -A app.scheduler.celery_app worker -l info -c 2