Files
cuframes/docker-compose.example.yml
T
gx 44dab75e08 docs+docker: integration guide и runtime image для Frigate/cctv stack
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.
2026-05-14 23:47:56 +01:00

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: