Last active 5 months ago

тест Raw
1Вот мой Dockerfile
2FROM registry.red-soft.ru/ubi8/python-311:latest
3
4
5# Переключаемся на root для установки системных пакетов
6USER root
7
8# Устанавливаем dnf-plugins-core для управления репозиториями
9RUN dnf install -y dnf-plugins-core
10
11# Включаем репозиторий Codeready Builder (содержит dev-пакеты в UBI)
12#RUN dnf config-manager --set-enabled ubi-8-codeready-builder
13
14# Установка зависимостей сборки, инструментов и запрошенных системных библиотек
15# Примечание: названия пакетов адаптированы под RHEL 8 / UBI 8:
16# libusb-1.0-0 -> libusb1
17# libglib2.0-0 -> glib2
18# libgl1-mesa-glx -> mesa-libGL
19# libgomp1 -> libgomp
20RUN dnf install -y \
21 gcc gcc-c++ make cmake git pkgconfig \
22 python3.11-devel \
23 libusb1 glib2 mesa-libGL libgomp net-tools \
24 nasm yasm wget curl \
25 && dnf clean all
26
27# Добавляем официальный репозиторий NVIDIA CUDA и устанавливаем CUDA Toolkit (12.4)
28RUN dnf config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel8/x86_64/cuda-rhel8.repo \
29 && dnf install -y cuda-toolkit-12-4 \
30 && dnf clean all
31
32ENV PATH=/usr/local/cuda/bin:$PATH
33#ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
34#ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
35
36# Установка Python-библиотеки harvesters
37RUN pip install --no-cache-dir harvesters numpy
38
39# ==========================================================
40# Сборка FFmpeg с поддержкой NVIDIA (cuvid, nvenc, nvdec)
41# ==========================================================
42
43# 2. Скачайте и установите ffnvcodec-headers
44RUN dnf install -y make git pkgconfig nasm yasm autoconf automake gcc gcc-c++
45
46RUN git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git /tmp/nv-codec-headers \
47 && cd /tmp/nv-codec-headers \
48 && make \
49 && make install PREFIX=/usr/local \
50 && cd / \
51 && export PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:$PKG_CONFIG_PATH
52
53RUN git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git /tmp/ffmpeg \
54 && cd /tmp/ffmpeg \
55 && ./configure \
56 --prefix=/usr/local \
57 --enable-cuda-nvcc \
58 --enable-cuvid \
59 --enable-nvenc \
60 --enable-nvdec \
61 --extra-cflags="-I/usr/local/include" \
62 --extra-ldflags="-L/usr/local/lib64" \
63 --enable-gpl \
64 --enable-nonfree \
65 --enable-shared \
66 --extra-cflags="-I/usr/local/cuda/include" \
67 --extra-ldflags="-L/usr/local/cuda/lib64" \
68 && make -j$(nproc) \
69 && make install \
70 && ldconfig \
71 && rm -rf /tmp/ffmpeg
72
73# ==========================================================
74# Сборка OpenCV с поддержкой CUDA
75# ==========================================================
76RUN git clone --depth 1 https://github.com/opencv/opencv.git /tmp/opencv \
77 && git clone --depth 1 https://github.com/opencv/opencv_contrib.git /tmp/opencv_contrib \
78 && mkdir -p /tmp/opencv/build && cd /tmp/opencv/build \
79 && cmake -D CMAKE_BUILD_TYPE=RELEASE \
80 -D CMAKE_INSTALL_PREFIX=/usr/local \
81 -D PYTHON3_EXECUTABLE=/usr/bin/python3.11 \
82 -D WITH_CUDA=ON \
83 -D CUDA_ARCH_BIN=5.2,6.0,6.1,7.0,7.5,8.0,8.6,8.9,9.0 \
84 -D ENABLE_FAST_MATH=ON \
85 -D CUDA_FAST_MATH=ON \
86 -D WITH_CUBLAS=ON \
87 -D OPENCV_DNN_CUDA=ON \
88 -D OPENCV_EXTRA_MODULES_PATH=/tmp/opencv_contrib/modules \
89 -D BUILD_opencv_python3=ON \
90 -D BUILD_TESTS=OFF \
91 -D BUILD_PERF_TESTS=OFF \
92 -D BUILD_EXAMPLES=OFF \
93 .. \
94 && make -j$(nproc) \
95 && make install \
96 && ldconfig \
97 && rm -rf /tmp/opencv /tmp/opencv_contrib
98
99# Очистка инструментов сборки для уменьшения размера образа
100RUN dnf remove -y gcc gcc-c++ make cmake nasm yasm wget curl git \
101 && dnf clean all \
102 && pip cache purge
103
104ENV PYTHONUNBUFFERED=1
105
106# Возврат к стандартному non-root пользователю UBI
107USER 1001
108WORKDIR /app
109
110CMD ["python3", "-c", "app.py"]
111
112У меня возникает следующая ошибка
11312.34 ERROR: cuvid requested, but not all dependencies are satisfied: ffnvcodec
11412.35
11512.35 If you think configure made a mistake, make sure you are using the latest
11612.35 version from Git. If the latest version fails, report the problem to the
11712.35 ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat.
11812.35 Include the log file "ffbuild/config.log" produced by configure as this will help
11912.35 solve the problem.
120------
121Dockerfile:52
122--------------------
123 51 |
124 52 | >>> RUN git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git /tmp/ffmpeg \
125 53 | >>> && cd /tmp/ffmpeg \
126 54 | >>> && ./configure \
127 55 | >>> --prefix=/usr/local \
128 56 | >>> --enable-cuda-nvcc \
129 57 | >>> --enable-cuvid \
130 58 | >>> --enable-nvenc \
131 59 | >>> --enable-nvdec \
132 60 | >>> --extra-cflags="-I/usr/local/include" \
133 61 | >>> --extra-ldflags="-L/usr/local/lib64" \
134 62 | >>> --enable-gpl \
135 63 | >>> --enable-nonfree \
136 64 | >>> --enable-shared \
137 65 | >>> --extra-cflags="-I/usr/local/cuda/include" \
138 66 | >>> --extra-ldflags="-L/usr/local/cuda/lib64" \
139 67 | >>> && make -j$(nproc) \
140 68 | >>> && make install \
141 69 | >>> && ldconfig \
142 70 | >>> && rm -rf /tmp/ffmpeg
143 71 |
144--------------------
145ERROR: failed to build: failed to solve: process "/bin/sh -c git clone --depth 1 https://github.com/FFmpeg/FFmpeg.git /tmp/ffmpeg && cd /tmp/ffmpeg && ./configure --prefix=/usr/local --enable-cuda-nvcc --enable-cuvid --enable-nvenc --enable-nvdec --extra-cflags=\"-I/usr/local/include\" --extra-ldflags=\"-L/usr/local/lib64\" --enable-gpl --enable-nonfree --enable-shared --extra-cflags=\"-I/usr/local/cuda/include\" --extra-ldflags=\"-L/usr/local/cuda/lib64\" && make -j$(nproc) && make install && ldconfig && rm -rf /tmp/ffmpeg" did not complete successfully: exit code: 1