Skip to content

Commit 50bbe32

Browse files
committed
change from cmake to ninja
2 parents e349a0a + 12c5339 commit 50bbe32

File tree

3 files changed

+159
-750
lines changed

3 files changed

+159
-750
lines changed

ffmpeg/Dockerfile

Lines changed: 159 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -268,17 +268,129 @@ ARG NASM_VER="2.15.05"
268268
ARG YASM_VER="1.3.0"
269269
ARG LAME_VER="3.100"
270270
ARG FFMPEG_VER="4.3.2"
271+
ARG python=3.8
272+
ENV PYTHON_VERSION=${python}
273+
274+
ENV DEBIAN_FRONTEND=noninteractive \
275+
MPLBACKEND=Svg \
276+
PYTHONUNBUFFERED=1 \
277+
LIBRARY_PATH=/usr/local/cuda/lib64/stubs \
278+
_CUDA_COMPAT_PATH="/usr/local/cuda/compat" \
279+
LD_LIBRARY_PATH="/usr/local/cuda/extras/CUPTI/lib64:/usr/local/cuda/compat/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64" \
280+
PATH="/usr/local/mpi/bin:/usr/local/ucx:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/bin/cmake/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/tensorrt/bin:" \
281+
LANG=C.UTF-8
282+
283+
# Set default shell to /bin/bash
284+
SHELL ["/bin/bash", "-cu"]
271285

272286

273287
RUN set -xe && \
274-
apt-get update && apt-get install -y aptitude && aptitude update && \
275-
aptitude install -y \
288+
apt-get update -y && \
289+
apt-get install -y --no-install-recommends software-properties-common wget && \
290+
add-apt-repository -y ppa:deadsnakes/ppa && \
291+
apt-get update -y && \
292+
apt-get install -y --no-install-recommends \
293+
ca-certificates \
294+
curl \
295+
dkms \
296+
fonts-nanum \
297+
fonts-nanum-coding \
298+
fonts-nanum-extra \
299+
g++ \
300+
gfortran \
301+
htop \
302+
iputils-ping \
303+
libasound2-dev \
304+
libavcodec-dev \
305+
libboost-dev \
306+
libboost-filesystem-dev \
307+
libboost-system-dev \
308+
libcairo2-dev libgirepository1.0-dev pkg-config gir1.2-gtk-3.0 \
309+
libgdal-dev python3-gdal \
310+
libnuma-dev \
311+
libopenblas-dev liblapack-dev \
312+
libsm6 \
313+
libswscale-dev \
314+
libv4l-dev \
315+
libxext6 \
316+
libxine2-dev \
317+
libxml2-dev \
318+
libxrender-dev \
319+
libxslt1-dev \
320+
make \
321+
mime-support \
322+
net-tools \
323+
openssh-server \
324+
pdsh \
325+
proj-bin libproj-dev libgeos-dev libgeos++-dev graphviz \
326+
subversion \
327+
unzip \
328+
xvfb \
329+
xz-utils \
330+
yasm \
331+
zip \
332+
openssh-client \
333+
build-essential \
334+
gcc \
335+
git \
336+
libavformat-dev \
337+
libcurl3-dev \
338+
libfreetype6-dev \
339+
libgeos-dev libgeos++-dev \
340+
libhdf5-serial-dev \
341+
libjpeg-dev \
342+
libmpdec2 \
343+
libpng-dev \
344+
libsdl-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev \
345+
libsmpeg-dev libportmidi-dev libavformat-dev libswscale-dev \
346+
libssl-dev \
347+
libtiff-dev \
348+
libzmq3-dev \
349+
pkg-config \
350+
python${PYTHON_VERSION} \
351+
python${PYTHON_VERSION}-dev \
352+
vim \
353+
wget \
354+
zlib1g-dev \
276355
wget build-essential automake autoconf git libtool libvorbis-dev \
277356
libass-dev libfreetype6-dev libsdl2-dev libva-dev libvdpau-dev \
278357
libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev \
279358
mercurial libnuma-dev texinfo zlib1g-dev \
280359
qtbase5-dev && \
360+
<<<<<<< HEAD
281361
mkdir -p /usr/local/ffmpeg_sources
362+
=======
363+
mkdir -p /usr/local/ffmpeg_sources && \
364+
ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h && \
365+
mkdir -p /etc/OpenCL/vendors && \
366+
echo "libnvidia-opencl.so.1" > /etc/OpenCL/vendors/nvidia.icdn && \
367+
apt-get clean && \
368+
rm -rf /var/lib/apt/lists/
369+
370+
WORKDIR /tmp
371+
RUN curl -fsSL https://developer.download.nvidia.com/compute/redist/nccl/v2.8/nccl_2.8.4-1+cuda11.1_x86_64.txz -O && \
372+
tar --no-same-owner --keep-old-files --lzma -xvf nccl_2.8.4-1+cuda11.1_x86_64.txz -C /usr/local/cuda/lib64/ --strip-components=2 --wildcards '*/lib/libnccl.so.*' && \
373+
tar --no-same-owner --keep-old-files --lzma -xvf nccl_2.8.4-1+cuda11.1_x86_64.txz -C /usr/lib/pkgconfig/ --strip-components=3 --wildcards '*/lib/pkgconfig/*' && \
374+
rm nccl_2.8.4-1+cuda11.1_x86_64.txz && \
375+
ldconfig
376+
377+
RUN ln -s /usr/local/cuda/lib64/stubs/libcuda.so /usr/local/cuda/lib64/stubs/libcuda.so.1 && \
378+
echo "/usr/local/cuda/lib64/stubs" > /etc/ld.so.conf.d/z-cuda-stubs.conf && \
379+
ldconfig
380+
381+
RUN wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-Linux-x86_64.sh \
382+
-q -O /tmp/cmake-install.sh && \
383+
chmod u+x /tmp/cmake-install.sh && \
384+
mkdir /usr/bin/cmake && \
385+
/tmp/cmake-install.sh --skip-license --prefix=/usr/bin/cmake && \
386+
rm /tmp/cmake-install.sh
387+
388+
RUN rm /usr/bin/python3 && \
389+
ln -s /usr/bin/python3.8 /usr/bin/python3 && \
390+
update-alternatives --install /usr/bin/python python /usr/bin/python3 1 && \
391+
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
392+
393+
>>>>>>> 12c533965e707a0a9b16f3e1666046d3dc4ab880
282394

283395
# Instaling NASM
284396
WORKDIR /usr/local/ffmpeg_sources
@@ -414,6 +526,7 @@ RUN set -xe && \
414526
make -j$(nproc) && \
415527
make install
416528

529+
<<<<<<< HEAD
417530
RUN ln -s /usr/include/x86_64-linux-gnu/cudnn_v7.h /usr/local/cuda/include/cudnn.h
418531
# ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.7 /usr/local/cuda/lib
419532

@@ -549,6 +662,50 @@ RUN cd /tmp/opencv-4.5.2/cmake_binary && ninja
549662

550663

551664
WORKDIR /usr/local
665+
=======
666+
# OpenCV
667+
668+
WORKDIR /tmp
669+
ENV OPENCV_VERSION="4.5.2"
670+
RUN wget https://github.com/opencv/opencv/archive/refs/tags/${OPENCV_VERSION}.zip && \
671+
wget -O opencv-contrib.zip https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.zip && \
672+
unzip ${OPENCV_VERSION}.zip && \
673+
unzip opencv-contrib.zip && \
674+
mkdir opencv-${OPENCV_VERSION}/cmake_binary && \
675+
cd opencv-${OPENCV_VERSION}/cmake_binary && \
676+
cmake \
677+
-DCMAKE_BUILD_TYPE=RELEASE \
678+
-D BUILD_TIFF=ON \
679+
-D BUILD_opencv_java=OFF \
680+
-D WITH_CUDA=ON \
681+
-D CUDA_NVCC_FLAGS=--expt-relaxed-constexpr \
682+
-D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1 \
683+
-D ENABLE_FAST_MATH=1 \
684+
-D CUDA_FAST_MATH=1 \
685+
-D WITH_CUBLAS=1 \
686+
-D WITH_OPENGL=ON \
687+
-D WITH_OPENCL=ON \
688+
-D WITH_IPP=ON \
689+
-D WITH_TBB=ON \
690+
-D WITH_EIGEN=ON \
691+
-D WITH_V4L=ON \
692+
-D WITH_FFMPEG=ON \
693+
-D WITH_GSTREAMER=ON \
694+
-D BUILD_TESTS=OFF \
695+
-D BUILD_PERF_TESTS=OFF \
696+
-D OPENCV_EXTRA_MODULES_PATH="../../opencv_contrib-4.5.2/modules" \
697+
-D CMAKE_BUILD_TYPE=RELEASE \
698+
-D CMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.prefix)") \
699+
-D PYTHON_EXECUTABLE=$(which python3) \
700+
-D PYTHON_INCLUDE_DIR=$(python3 -c "from distutils.sysconfig import get_python_inc; print(get_python_inc())") \
701+
-D PYTHON_PACKAGES_PATH=$(python3 -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") \
702+
.. 2>&1 | tee cmake_messages.txt && \
703+
make -j$(nproc) && \
704+
make install
705+
706+
# clean up
707+
WORKDIR /
708+
>>>>>>> 12c533965e707a0a9b16f3e1666046d3dc4ab880
552709
RUN set -xe && \
553710
apt update -y && \
554711
apt install sudo && \

0 commit comments

Comments
 (0)