# Dev-окружение для cuframes — содержит CUDA toolkit (с nvcc), build tools, # линкеры/анализаторы. GPU прокидывается через `--gpus all` на runtime. # # Base: nvidia/cuda devel-image c CUDA 13.0 + cuDNN на Ubuntu 24.04. # devel-вариант (не runtime) — нужен для компиляции CUDA-кода (nvcc, headers). # CUDA 13.x — текущая stable линейка с поддержкой sm_120 (Blackwell, RTX 5090). FROM nvidia/cuda:13.0.3-cudnn-devel-ubuntu24.04 # Не запрашивать tzdata interactive при apt ENV DEBIAN_FRONTEND=noninteractive # Build tools RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ ca-certificates \ clang \ clang-format \ clang-tidy \ cmake \ ninja-build \ pkg-config \ gcc-12 g++-12 \ gdb \ git \ nasm \ yasm \ libtool \ autoconf \ automake \ # Системные libs (для FFmpeg build в Phase 2 и для examples) libavcodec-dev \ libavformat-dev \ libavutil-dev \ libavfilter-dev \ libswscale-dev \ libssl-dev \ # Python для bindings (Phase 3) python3 \ python3-dev \ python3-pip \ # Profiling / debug tools valgrind \ strace \ ltrace \ linux-tools-common \ # Просмотр и работа в контейнере vim \ curl \ wget \ less \ htop \ sudo \ && rm -rf /var/lib/apt/lists/* # Симлинки для удобства (CUDA устанавливает специфичные пути) ENV CUDA_HOME=/usr/local/cuda ENV PATH=${CUDA_HOME}/bin:${PATH} ENV LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH} # Поднятие лимита открытых файлов для Unix sockets + eventfd (cuframes producer # может держать N consumers × M eventfds) RUN echo '* soft nofile 65536' >> /etc/security/limits.conf && \ echo '* hard nofile 65536' >> /etc/security/limits.conf # Working directory совпадает с bind-mount из docker-compose WORKDIR /workspace # Default shell — bash с history-file под /workspace/.bash_history (persistent) ENV HISTFILE=/workspace/.bash_history SHELL ["/bin/bash", "-c"] CMD ["/bin/bash"]