version: "3.8" services: edge-inference: build: . image: edge-inference:latest container_name: edge-inference restart: always # GPU 访问 deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] # 环境变量 env_file: - .env # 卷挂载 volumes: - ./models:/app/models # TensorRT 引擎文件 - ./data:/app/data # SQLite + 截图缓存 - ./logs:/app/logs # 运行日志 - ./.env:/app/.env # 环境配置 # 网络(需要访问摄像头 RTSP + 云端 API + Redis) network_mode: host # 健康检查 healthcheck: test: ["CMD", "python", "-c", "import os; assert os.path.exists('/app/main.py')"] interval: 30s timeout: 10s retries: 3 start_period: 30s # 日志限制 logging: driver: json-file options: max-size: "50m" max-file: "5"