Files
cuframes/docker/Dockerfile.runtime
T
Claude Opus 78824c4ed1
build / cmake build (CUDA 12.4, Ubuntu 22.04) (push) Successful in 1m42s
build / ffmpeg filter patch (out-of-tree) (push) Failing after 1m22s
docker: +mosquitto-clients в runtime image
Нужен для loop-publisher.sh wrapper в cctv stack — heartbeat и alert MQTT
publish. 4.5 MB добавил, runtime image теперь ~590 MB. Без него wrapper
silent fail на mqtt_alert/mqtt_state (но retry-loop работает).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-02 17:59:56 +01:00

61 lines
2.5 KiB
Docker

# 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"]