# 开发/联调机专用: 把源码目录挂进容器, 改完代码不用重新 build。
#
# 为什么不直接写进 docker-compose.yml: 挂载会让容器跑的是**磁盘上的代码**, 而不是镜像里的
# 代码。开发机上这正是想要的 (git pull 完 restart 一下就生效); 生产机上则相反 —— 部署的
# 东西必须等于构建出来的东西, 否则"这台跑的到底是哪版"永远说不清。
#
# 用法 (只在开发/联调机上做一次):
#     cp docker-compose.dev.yml docker-compose.override.yml
#
# docker compose 会自动加载 docker-compose.override.yml, 之后:
#     git pull && docker compose restart          # 改 Python 代码, 秒生效
#     ./scripts/deploy.sh                          # 改了 requirements.txt 才需要重建
#
# override 文件已在 .gitignore 里, 不会被带到生产机。
#
# 注意:
#   * 依赖装在镜像的 site-packages 里, 不在 /app —— 挂载不会影响它。改 requirements.txt
#     仍然必须 build。
#   * Dockerfile 设了 PYTHONDONTWRITEBYTECODE=1, 不会往你的源码目录里拉 __pycache__。
#   * pms-ws 改动**仍需 restart** —— 挂载省掉的是 build, 不是进程重启, 它是常驻连接进程,
#     不会自己重载模块。

services:
  pms-web:
    volumes:
      - .:/app
      - ./logs:/app/logs
  pms-beat:
    volumes:
      - .:/app
      - ./logs:/app/logs
  pms-worker:
    volumes:
      - .:/app
      - ./logs:/app/logs
  pms-ws:
    volumes:
      - .:/app
      - ./logs:/app/logs
