# 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 ───────────────────────────────────────────────────────── # CUDA 12.4 — matching ffmpeg-vf-cuda-grid base + Frigate stable-tensorrt FROM nvidia/cuda:12.4.1-devel-ubuntu22.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:12.4.1-runtime-ubuntu22.04 AS runtime ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install -y --no-install-recommends \ libavcodec58 libavformat58 libavutil56 \ ca-certificates \ mosquitto-clients \ && 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"]