47 lines
1.0 KiB
YAML
47 lines
1.0 KiB
YAML
|
|
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"
|