FROM nvidia/cuda:11.4.0-devel-ubuntu20.04 AS devel ARG OPENCV_VERSION=4.5.3 ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Europe/London ENV NVIDIA_DRIVER_CAPABILITIES graphics,compute,utility,video RUN apt-get update &&\ # Install build tools, build dependencies and python apt-get install --no-install-recommends -y \ build-essential \ ninja-build \ git \ openssh-client \ wget \ unzip \ yasm \ cppcheck \ pkg-config \ libceres-dev \ libreadline-dev \ libopus-dev \ libxtst-dev \ libswscale-dev \ libtbb2 \ libtbb-dev \ libjpeg-dev \ libpng-dev \ libglew-dev \ zlib1g-dev \ libasound-dev \ libavcodec-dev \ libavformat-dev \ libavutil-dev \ libpostproc-dev \ libswscale-dev \ libeigen3-dev \ libgtk2.0-dev \ libxxf86vm-dev \ uuid-dev \ libmsgpack-dev \ liburiparser-dev \ software-properties-common \ && apt-key adv --keyserver keys.gnupg.net --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE && \ add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo focal main" -u && \ apt-get update && \ apt-get install --no-install-recommends -y \ librealsense2-dev \ && rm -rf /var/lib/apt/lists/* COPY ./libnvcuvid.so ./libnvidia-encode.so /usr/lib/x86_64-linux-gnu/ RUN cd /opt/ &&\ # CMake wget https://github.com/Kitware/CMake/releases/download/v3.20.5/cmake-3.20.5-linux-x86_64.sh && \ chmod a+x ././cmake-3.20.5-linux-x86_64.sh && \ ./cmake-3.20.5-linux-x86_64.sh --skip-license --prefix=/usr/local && \ rm ./cmake-3.20.5-linux-x86_64.sh && \ # Pylon wget -O pylon.deb https://seafile.utu.fi/f/b4585f6c84f0462fac04/?dl=1 &&\ apt-get install ./pylon.deb &&\ rm ./pylon.deb &&\ rm -rf /var/lib/apt/lists/* &&\ # Portaudio cd /opt/ &&\ wget http://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz &&\ tar -xf ./pa_stable_v190700_20210406.tgz &&\ rm ./pa_stable_v190700_20210406.tgz &&\ cd ./portaudio &&\ ./configure && make && make install &&\ rm -rf ./portaudio &&\ # Download and unzip OpenCV and opencv_contrib and delte zip files cd /opt/ &&\ wget https://github.com/opencv/opencv/archive/$OPENCV_VERSION.zip &&\ unzip $OPENCV_VERSION.zip &&\ rm $OPENCV_VERSION.zip &&\ wget https://github.com/opencv/opencv_contrib/archive/$OPENCV_VERSION.zip &&\ unzip ${OPENCV_VERSION}.zip &&\ rm ${OPENCV_VERSION}.zip &&\ # Create build folder and switch to it mkdir /opt/opencv-${OPENCV_VERSION}/build && cd /opt/opencv-${OPENCV_VERSION}/build &&\ # Cmake configure cmake \ -DOPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib-${OPENCV_VERSION}/modules \ -DWITH_CUDA=ON \ -DOPENCV_ENABLE_NONFREE=ON\ -DCUDA_ARCH_BIN="6.1 7.5" \ -DBUILD_TESTS=OFF\ -DBUILD_PERF_TESTS=OFF\ -DBUILD_EXAMPLES=OFF\ -DBUILD_opencv_bioinspired=OFF\ -DBUILD_opencv_cudaobjdetect=OFF\ -DBUILD_opencv_dnn=OFF\ -DBUILD_opencv_dnn_objdetect=OFF\ -DBUILD_opencv_dnn_superres=OFF\ -DBUILD_opencv_fuzzy=OFF\ -DBUILD_opencv_hdf=OFF\ -DBUILD_opencv_hfs=OFF\ -DBUILD_opencv_dpm=OFF\ -DBUILD_opencv_image_hash=OFF\ -DBUILD_opencv_java_bindings_generator=OFF\ -DBUILD_opencv_js=OFF\ -DBUILD_opencv_saliency=OFF\ -DBUILD_opencv_sfm=OFF\ -DBUILD_opencv_stitching=OFF\ -DBUILD_opencv_structured_light=OFF\ -DBUILD_opencv_superres=OFF\ -DBUILD_opencv_surface_matching=OFF\ -DBUILD_opencv_viz=OFF\ -DBUILD_opencv_xobjdetect=OFF\ -DBUILD_opencv_gapi=OFF\ -DBUILD_opencv_videostab=OFF\ -DBUILD_opencv_rgbd=OFF\ -DWITH_CUDNN=OFF\ -DWITH_TIFF=OFF\ -DWITH_WEBP=OFF\ -DWITH_OPENEXR=OFF\ -DWITH_OPENCL=OFF\ -DWITH_PROTOBUF=OFF\ -DCMAKE_BUILD_TYPE=RELEASE \ # Install path will be /usr/local/lib (lib is implicit) -DCMAKE_INSTALL_PREFIX=/usr/local \ .. &&\ # Make make -j"$(nproc)" && \ # Install to /usr/local/lib make install && \ ldconfig &&\ # Remove OpenCV sources and build folder rm -rf /opt/opencv-${OPENCV_VERSION} && rm -rf /opt/opencv_contrib-${OPENCV_VERSION} &&\ ln -s /usr/local/include/opencv4/opencv2 /usr/local/include/opencv2 FROM nvidia/cuda:11.4.0-base-ubuntu20.04 AS runtime ARG OPENCV_VERSION=4.5.3 ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Europe/London ENV NVIDIA_DRIVER_CAPABILITIES graphics,compute,utility,video RUN apt-get update && apt-get upgrade -y &&\ # Install build tools, build dependencies and python apt-get install --no-install-recommends -y \ libceres1 \ libreadline8 \ libopus0 \ libxtst6 \ libtbb2 \ libjpeg8 \ libpng16-16 \ libtiff5 \ libavformat58 \ libpq5 \ libxine2 \ libglew2.1 \ zlib1g \ libasound2 \ libavcodec58 \ libavutil56 \ libpostproc55 \ libswscale5 \ libgtk2.0-0 \ libxxf86vm1 \ uuid \ libmsgpackc2 \ liburiparser1 \ software-properties-common \ && rm -rf /var/lib/apt/lists/* COPY --from=devel /usr/local/share /usr/local/share COPY --from=devel /usr/local/lib /usr/local/lib COPY --from=devel /opt/pylon /opt/pylon COPY --from=devel /etc/udev/rules.d/69-basler-cameras.rules /etc/udev/rules.d/ COPY --from=devel /etc/profile.d /etc/profile.d