44dab75e08
docs/integration.md — детальный guide для интеграции в существующий CCTV docker-compose: критичные требования (ipc=shareable/container, общий shared volume для socket), пример CuframesSource для cctv-processor, verification checklist, troubleshooting (timeout, ipc namespace mismatch, high latency). Зафиксировано: v0.1 frigate-decode не убирается без patch'а FFmpeg — это v0.2 scope. docker/Dockerfile.runtime — multi-stage build (devel → runtime), копирует libcuframes.so + cuframes-rtsp-source + sub_count в /usr/local. Образ ~700 MB (vs ~7 GB у dev'а). Smoke-test: бинарки запускаются, ldd видит все нужные libs. docker-compose.example.yml — reference docker-compose с правильным ipc mode и volume mounts для копирования в свои проекты. .dockerignore — исключает build/ и build-*/ из COPY context. README обновлён: статус v0.1 done, quickstart с реальным docker run, ссылка на integration guide.
60 lines
1.9 KiB
YAML
60 lines
1.9 KiB
YAML
# Пример docker-compose для cuframes intergration в CCTV-стек.
|
|
#
|
|
# Запуск:
|
|
# export CAM_PASS=your_camera_password
|
|
# docker compose -f docker-compose.example.yml up
|
|
#
|
|
# Этот файл — REFERENCE для adaptации в boost проектах (cctv, frigate stack).
|
|
# Не для production без review.
|
|
|
|
services:
|
|
# Источник: декодирует RTSP в CUDA, публикует через cuframes IPC
|
|
cuframes-cam-test:
|
|
# Локальный build из этого репо
|
|
build:
|
|
context: .
|
|
dockerfile: docker/Dockerfile.runtime
|
|
image: gx/cuframes:0.1
|
|
container_name: cuframes-cam-test
|
|
restart: unless-stopped
|
|
runtime: nvidia
|
|
environment:
|
|
NVIDIA_VISIBLE_DEVICES: all
|
|
NVIDIA_DRIVER_CAPABILITIES: compute,video,utility
|
|
# CRITICAL: ipc=shareable — позволяет другим контейнерам joinиться через
|
|
# `ipc: container:cuframes-cam-test`
|
|
ipc: shareable
|
|
shm_size: 1g
|
|
volumes:
|
|
- cuframes_sock:/run/cuframes
|
|
command:
|
|
- /usr/local/bin/cuframes-rtsp-source
|
|
- --rtsp=rtsp://admin:${CAM_PASS}@192.168.88.98:554/cam/realmonitor?channel=1&subtype=0
|
|
- --key=cam-test
|
|
- --ring=6
|
|
- --verbose
|
|
|
|
# Потребитель: счётчик frames (smoke-test consumer)
|
|
cuframes-sub-test:
|
|
image: gx/cuframes:0.1
|
|
container_name: cuframes-sub-test
|
|
depends_on:
|
|
- cuframes-cam-test
|
|
restart: "no"
|
|
runtime: nvidia
|
|
environment:
|
|
NVIDIA_VISIBLE_DEVICES: all
|
|
NVIDIA_DRIVER_CAPABILITIES: compute,video,utility
|
|
# CRITICAL: ipc namespace должен совпадать с publisher'ом
|
|
ipc: "container:cuframes-cam-test"
|
|
volumes:
|
|
- cuframes_sock:/run/cuframes:ro
|
|
command:
|
|
- /usr/local/bin/sub_count
|
|
- --key=cam-test
|
|
- --max-frames=500
|
|
- --verbose
|
|
|
|
volumes:
|
|
cuframes_sock:
|