# 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