@@ -268,17 +268,129 @@ ARG NASM_VER="2.15.05"
268
268
ARG YASM_VER="1.3.0"
269
269
ARG LAME_VER="3.100"
270
270
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" ]
271
285
272
286
273
287
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 \
276
355
wget build-essential automake autoconf git libtool libvorbis-dev \
277
356
libass-dev libfreetype6-dev libsdl2-dev libva-dev libvdpau-dev \
278
357
libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev \
279
358
mercurial libnuma-dev texinfo zlib1g-dev \
280
359
qtbase5-dev && \
360
+ <<<<<<< HEAD
281
361
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
282
394
283
395
# Instaling NASM
284
396
WORKDIR /usr/local/ffmpeg_sources
@@ -414,6 +526,7 @@ RUN set -xe && \
414
526
make -j$(nproc) && \
415
527
make install
416
528
529
+ <<<<<<< HEAD
417
530
RUN ln -s /usr/include/x86_64-linux-gnu/cudnn_v7.h /usr/local/cuda/include/cudnn.h
418
531
# ln -s /usr/lib/x86_64-linux-gnu/libcudnn.so.7 /usr/local/cuda/lib
419
532
@@ -549,6 +662,50 @@ RUN cd /tmp/opencv-4.5.2/cmake_binary && ninja
549
662
550
663
551
664
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
552
709
RUN set -xe && \
553
710
apt update -y && \
554
711
apt install sudo && \
0 commit comments