x-polyweather-base: &polyweather-base build: . image: polyweather-app:latest env_file: - .env services: polyweather: <<: *polyweather-base container_name: polyweather_bot restart: unless-stopped volumes: # Persist runtime data outside git workspace. # Host path defaults to /var/lib/polyweather and can be overridden in .env. - ${POLYWEATHER_RUNTIME_DATA_DIR:-/var/lib/polyweather}:/var/lib/polyweather # Keep /app/data compatibility for existing cache/state defaults. - ${POLYWEATHER_RUNTIME_DATA_DIR:-/var/lib/polyweather}:/app/data - ./bot.log:/app/bot.log # 挂载日志文件 # UID/GID are mainly useful on Linux hosts to avoid root-owned output files. # Windows / macOS can usually keep the fallback values. user: "${UID:-1000}:${GID:-1000}" polyweather_web: <<: *polyweather-base container_name: polyweather_web restart: unless-stopped command: python web/app.py volumes: # Web service shares the same runtime data directory as bot/state tasks. - ${POLYWEATHER_RUNTIME_DATA_DIR:-/var/lib/polyweather}:/var/lib/polyweather - ${POLYWEATHER_RUNTIME_DATA_DIR:-/var/lib/polyweather}:/app/data ports: - "8000:8000" # UID/GID are mainly useful on Linux hosts to avoid root-owned output files. user: "${UID:-1000}:${GID:-1000}"