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.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Runtime-образ для cuframes — содержит:
|
||||
# - libcuframes.so (built из dev-stage)
|
||||
# - cuframes-rtsp-source bin
|
||||
# - sub_count example bin
|
||||
# - минимальный CUDA runtime + ffmpeg libs (без nvcc и headers)
|
||||
#
|
||||
# Не для разработки! Для dev — docker/Dockerfile.dev.
|
||||
#
|
||||
# Build:
|
||||
# docker build -f docker/Dockerfile.runtime -t gx/cuframes:0.1 .
|
||||
#
|
||||
# Run (publisher):
|
||||
# docker run --rm -it --runtime=nvidia --ipc=shareable \
|
||||
# -v cuframes_sock:/run/cuframes \
|
||||
# gx/cuframes:0.1 \
|
||||
# /usr/local/bin/cuframes-rtsp-source --rtsp ... --key ...
|
||||
|
||||
# ─── Build stage ─────────────────────────────────────────────────────────
|
||||
FROM nvidia/cuda:13.0.3-cudnn-devel-ubuntu24.04 AS build
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
build-essential cmake ninja-build pkg-config \
|
||||
libavcodec-dev libavformat-dev libavutil-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /src
|
||||
COPY . /src
|
||||
RUN cmake -B build -S . -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DBUILD_EXAMPLES=ON \
|
||||
-DBUILD_TOOLS=ON \
|
||||
-DBUILD_PYTHON_BINDINGS=OFF \
|
||||
-DBUILD_FFMPEG_FILTER=OFF \
|
||||
&& cmake --build build --parallel
|
||||
|
||||
# ─── Runtime stage ────────────────────────────────────────────────────────
|
||||
FROM nvidia/cuda:13.0.3-cudnn-runtime-ubuntu24.04 AS runtime
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libavcodec60 libavformat60 libavutil58 \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# libcuframes.so → /usr/local/lib (стандартный путь для ldconfig)
|
||||
COPY --from=build /src/build/libcuframes/libcuframes.so* /usr/local/lib/
|
||||
COPY --from=build /src/include/cuframes /usr/local/include/cuframes
|
||||
COPY --from=build /src/build/tools/cuframes-rtsp-source/cuframes-rtsp-source \
|
||||
/usr/local/bin/
|
||||
COPY --from=build /src/build/examples/sub_count/sub_count \
|
||||
/usr/local/bin/
|
||||
|
||||
RUN ldconfig
|
||||
|
||||
# Default — print help, чтобы случайный `docker run` показал что это
|
||||
CMD ["/usr/local/bin/cuframes-rtsp-source", "--help"]
|
||||
Reference in New Issue
Block a user