46 lines
1.2 KiB
YAML
46 lines
1.2 KiB
YAML
# 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
|