diff --git a/dockerfiles/rhel8/openvino_cg_dev_2024.1.0.dockerfile b/dockerfiles/rhel8/openvino_cg_dev_2024.1.0.dockerfile new file mode 100644 index 00000000..173fbd9a --- /dev/null +++ b/dockerfiles/rhel8/openvino_cg_dev_2024.1.0.dockerfile @@ -0,0 +1,359 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM registry.access.redhat.com/ubi8:8.9 AS base +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + + +# get product from URL +ARG package_url +ARG TEMP_DIR=/tmp/openvino_installer + + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + + +# install product by copying archive content + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + + +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM base as opencv +LABEL description="This is the dev image for OpenCV building with OpenVINO Runtime backend" +LABEL vendor="Intel Corporation" + + +COPY ./entitlement /etc/pki/entitlement +COPY ./rhsm-conf /etc/rhsm +COPY ./rhsm-ca /etc/rhsm/ca + + +RUN rm -f /etc/rhsm-host && subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms +RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && dnf clean all +RUN dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm && dnf clean all +# hadolint ignore=DL3033 +RUN yum install -y \ + gtk3-devel \ + gstreamer1-devel \ + gstreamer1-plugins-base-devel \ + ffmpeg-devel \ + libmfx-devel \ + cmake \ + git \ + python38-devel \ + python38-pip \ + gcc-c++ \ + gcc && yum clean all + +RUN rm -rf /etc/pki/entitlement && rm -rf /etc/rhsm + +RUN python3 -m pip install --no-cache-dir numpy==1.23.1 +ARG OPENCV_BRANCH="377be68d923e40900ac5526242bcf221e3f355e5" # 4.8 with a fix for building tests +WORKDIR /opt/repo +RUN git clone https://github.com/opencv/opencv.git +WORKDIR /opt/repo/opencv +RUN git checkout ${OPENCV_BRANCH} +WORKDIR /opt/repo/opencv/build + +# hadolint ignore=SC2046 +RUN . "${INTEL_OPENVINO_DIR}"/setupvars.sh; \ + cmake \ + -D BUILD_INFO_SKIP_EXTRA_MODULES=ON \ + -D BUILD_EXAMPLES=OFF \ + -D BUILD_JASPER=OFF \ + -D BUILD_JAVA=OFF \ + -D BUILD_JPEG=ON \ + -D BUILD_APPS_LIST=version \ + -D BUILD_opencv_apps=ON \ + -D BUILD_opencv_java=OFF \ + -D BUILD_OPENEXR=OFF \ + -D BUILD_PNG=ON \ + -D BUILD_TBB=OFF \ + -D BUILD_WEBP=OFF \ + -D BUILD_ZLIB=ON \ + -D BUILD_TESTS=ON \ + -D WITH_1394=OFF \ + -D WITH_CUDA=OFF \ + -D WITH_EIGEN=OFF \ + -D WITH_GPHOTO2=OFF \ + -D WITH_GSTREAMER=ON \ + -D OPENCV_GAPI_GSTREAMER=OFF \ + -D WITH_GTK_2_X=OFF \ + -D WITH_IPP=ON \ + -D WITH_JASPER=OFF \ + -D WITH_LAPACK=OFF \ + -D WITH_MATLAB=OFF \ + -D WITH_MFX=OFF \ + -D WITH_OPENCLAMDBLAS=OFF \ + -D WITH_OPENCLAMDFFT=OFF \ + -D WITH_OPENEXR=OFF \ + -D WITH_OPENJPEG=OFF \ + -D WITH_QUIRC=OFF \ + -D WITH_TBB=OFF \ + -D WITH_TIFF=OFF \ + -D WITH_VTK=OFF \ + -D WITH_WEBP=OFF \ + -D CMAKE_USE_RELATIVE_PATHS=ON \ + -D CMAKE_SKIP_INSTALL_RPATH=ON \ + -D ENABLE_BUILD_HARDENING=ON \ + -D ENABLE_CONFIG_VERIFICATION=ON \ + -D ENABLE_PRECOMPILED_HEADERS=OFF \ + -D ENABLE_CXX11=ON \ + -D INSTALL_PDB=ON \ + -D INSTALL_TESTS=ON \ + -D INSTALL_C_EXAMPLES=OFF \ + -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D CMAKE_INSTALL_PREFIX=install \ + -D OPENCV_SKIP_PKGCONFIG_GENERATION=ON \ + -D OPENCV_SKIP_PYTHON_LOADER=OFF \ + -D OPENCV_SKIP_CMAKE_ROOT_CONFIG=ON \ + -D OPENCV_GENERATE_SETUPVARS=OFF \ + -D OPENCV_BIN_INSTALL_PATH=bin \ + -D OPENCV_INCLUDE_INSTALL_PATH=include \ + -D OPENCV_LIB_INSTALL_PATH=lib \ + -D OPENCV_CONFIG_INSTALL_PATH=cmake \ + -D OPENCV_3P_LIB_INSTALL_PATH=3rdparty \ + -D OPENCV_SAMPLES_SRC_INSTALL_PATH=samples \ + -D OPENCV_DOC_INSTALL_PATH=doc \ + -D OPENCV_OTHER_INSTALL_PATH=etc \ + -D OPENCV_LICENSES_INSTALL_PATH=etc/licenses \ + -D OPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT=ON \ + -D BUILD_opencv_world=OFF \ + -D BUILD_opencv_python2=OFF \ + -D BUILD_opencv_python3=ON \ + -D BUILD_opencv_dnn=OFF \ + -D BUILD_opencv_gapi=OFF \ + -D PYTHON3_PACKAGES_PATH=install/python/python3 \ + -D PYTHON3_LIMITED_API=ON \ + -D HIGHGUI_PLUGIN_LIST=all \ + -D OPENCV_PYTHON_INSTALL_PATH=python \ + -D CPU_BASELINE=SSE4_2 \ + -D OPENCV_IPP_GAUSSIAN_BLUR=ON \ + -D WITH_INF_ENGINE=ON \ + -D InferenceEngine_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D ngraph_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D INF_ENGINE_RELEASE=2022010000 \ + -D VIDEOIO_PLUGIN_LIST=ffmpeg,gstreamer \ + -D CMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined \ + -D CMAKE_BUILD_TYPE=Release /opt/repo/opencv && \ + make -j$(nproc) && cmake -P cmake_install.cmake && \ + rm -Rf install/bin install/etc/samples + +WORKDIR /opt/repo/opencv/build/install +CMD ["/bin/bash"] +# ------------------------------------------------------------------------------------------------- + + + + +# ----------------- +FROM registry.access.redhat.com/ubi8:8.9 AS ov_base + +LABEL name="rhel8_dev" \ + maintainer="openvino_docker@intel.com" \ + vendor="Intel Corporation" \ + version="2024.1.0" \ + release="2024.1.0" \ + summary="Provides the latest release of Intel(R) Distribution of OpenVINO(TM) toolkit." \ + description="This is the dev image for Intel(R) Distribution of OpenVINO(TM) toolkit on RHEL UBI 8" + +WORKDIR / +USER root + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + + + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + + + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel /opt/intel + + + +ARG LGPL_DEPS="gcc-c++ \ + glibc \ + libstdc++ \ + libgcc" +ARG INSTALL_PACKAGES="-c=opencv_req -c=python -c=opencv_opt -c=core -c=dev" + +ARG INSTALL_SOURCES="no" + +# hadolint ignore=SC2016 +RUN sed -i -e 's|https://vault.centos.org/centos/8/PowerTools/$arch/os/Packages/gflags-devel-2.1.2-6|http://mirror.centos.org/centos/8-stream/PowerTools/$arch/os/Packages/gflags-devel-2.2.2-1|g' ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh && \ + sed -i -e 's|https://vault.centos.org/centos/8/PowerTools/$arch/os/Packages/gflags-2.1.2-6|http://mirror.centos.org/centos/8-stream/PowerTools/$arch/os/Packages/gflags-2.2.2-1|g' ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh + +WORKDIR /thirdparty +# hadolint ignore=DL3031, DL3033, SC2012 +RUN rpm -qa --qf "%{name}\n" > base_packages.txt && \ + yum install -y ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y $INSTALL_PACKAGES && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + yum install -y yum-utils && \ + rpm -qa --qf "%{name}\n" > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + rpm -qa $package --qf "%{name}: %{license}\n" | grep GPL; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + yumdownloader --skip-broken --source -y $package; \ + fi \ + done && \ + yum autoremove -y yum-utils && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + yum clean all && rm -rf /var/cache/yum + + +RUN rm -Rf /etc/pki/entitlement /etc/rhsm/ca /etc/rhsm/rhsm.conf + + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + +WORKDIR /licenses +RUN cp -rf "${INTEL_OPENVINO_DIR}"/licensing /licenses + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.8 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# dev package +WORKDIR ${INTEL_OPENVINO_DIR} +ARG OPENVINO_WHEELS_VERSION=2024.1.0 +ARG OPENVINO_WHEELS_URL +# hadolint ignore=SC2102,DL3033 +RUN yum install -y cmake git && yum clean all && \ + if [ -z "$OPENVINO_WHEELS_URL" ]; then \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --extra-index-url https://download.pytorch.org/whl/cpu; \ + else \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" && \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" --extra-index-url https://download.pytorch.org/whl/cpu ; \ + fi + +# download source for PyPi LGPL packages +WORKDIR /thirdparty +RUN if [ "$INSTALL_SOURCES" = "yes" ]; then \ + curl -L https://files.pythonhosted.org/packages/ee/2d/9cdc2b527e127b4c9db64b86647d567985940ac3698eeabc7ffaccb4ea61/chardet-4.0.0.tar.gz --output chardet-4.0.0.tar.gz; \ + curl -L https://files.pythonhosted.org/packages/81/41/e6cb9026374771e3bdb4c0fe8ac0c51c693a14b4f72f26275da15f7a4d8b/ethtool-0.14.tar.gz --output ethtool-0.14.tar.gz; \ + curl -L https://files.pythonhosted.org/packages/ef/86/c5a34243a932346c59cb25eb49a4d1dec227974209eb9b618d0ed57ea5be/gpg-1.10.0.tar.gz --output gpg-1.10.0.tar.gz; \ + curl -L https://files.pythonhosted.org/packages/e0/e8/1e4f21800015a9ca153969e85fc29f7962f8f82fc5dbc1ecbdeb9dc54c75/PyGObject-3.28.3.tar.gz --output PyGObject-3.28.3.tar.gz; \ + fi + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN curl -L https://raw.githubusercontent.com/openvinotoolkit/docker_ci/master/dockerfiles/rhel8/third-party-programs-docker-runtime.txt --output third-party-programs-docker-runtime.txt && \ + curl -L https://raw.githubusercontent.com/openvinotoolkit/docker_ci/master/dockerfiles/rhel8/third-party-programs-docker-dev.txt --output third-party-programs-docker-dev.txt + +COPY --from=opencv /opt/repo/opencv/build/install ${INTEL_OPENVINO_DIR}/extras/opencv +RUN echo "export OpenCV_DIR=${INTEL_OPENVINO_DIR}/extras/opencv/cmake" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh"; \ + echo "export LD_LIBRARY_PATH=${INTEL_OPENVINO_DIR}/extras/opencv/lib:\$LD_LIBRARY_PATH" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh" + +# Install dependencies needed by OV::RemoteTensor +RUN yum install -y \ + https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/opencl-headers-2.2-1.20180306gite986688.el8.noarch.rpm \ + https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/ocl-icd-devel-2.2.12-1.el8.x86_64.rpm \ + https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/ocl-icd-2.2.12-1.el8.x86_64.rpm && \ + yum clean all + +# build samples into ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin +WORKDIR "${INTEL_OPENVINO_DIR}"/samples/cpp +RUN ./build_samples.sh -b /tmp/build -i ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin && \ + rm -Rf /tmp/build + +# add Model API package +# hadolint ignore=DL3013 +RUN git clone https://github.com/openvinotoolkit/open_model_zoo && \ + sed -i '/opencv-python/d' open_model_zoo/demos/common/python/requirements.txt && \ + pip3 --no-cache-dir install open_model_zoo/demos/common/python/ && \ + rm -Rf open_model_zoo && \ + python3 -c "from model_zoo import model_api" + +# for CPU + +# for GPU +RUN groupmod -g 44 video +# hadolint ignore=DL3041 +RUN dnf install -y libedit ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-gmmlib-22.3.1-i529.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-igc-core-1.0.12504.6-i537.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-igc-opencl-1.0.12504.6-i537.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-opencl-22.43.24595.35-i538.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-level-zero-gpu-1.3.24595.35-i538.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/level-zero-1.8.8-i524.el8.x86_64.rpm ; \ + rpm -ivh http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/ocl-icd-2.2.12-1.el8.x86_64.rpm ; \ + dnf clean all + + +# Post-installation cleanup and setting up OpenVINO environment variables + +RUN rm -rf /tmp && mkdir /tmp + + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/rhel8/openvino_cg_dev_2024.2.0.dockerfile b/dockerfiles/rhel8/openvino_cg_dev_2024.2.0.dockerfile new file mode 100644 index 00000000..d4736138 --- /dev/null +++ b/dockerfiles/rhel8/openvino_cg_dev_2024.2.0.dockerfile @@ -0,0 +1,360 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM registry.access.redhat.com/ubi8:8.9 AS base +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/linux/l_openvino_toolkit_rhel8_2024.2.0.15519.5c0f38f83f6_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + + +# install product by copying archive content + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + + +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM base as opencv +LABEL description="This is the dev image for OpenCV building with OpenVINO Runtime backend" +LABEL vendor="Intel Corporation" + + +COPY ./entitlement /etc/pki/entitlement +COPY ./rhsm-conf /etc/rhsm +COPY ./rhsm-ca /etc/rhsm/ca + + +RUN rm -f /etc/rhsm-host && subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms +RUN dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm && dnf clean all +RUN dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm && dnf clean all +# hadolint ignore=DL3033 +RUN yum install -y \ + gtk3-devel \ + gstreamer1-devel \ + gstreamer1-plugins-base-devel \ + ffmpeg-devel \ + libmfx-devel \ + cmake \ + git \ + python38-devel \ + python38-pip \ + gcc-c++ \ + gcc && yum clean all + +RUN rm -rf /etc/pki/entitlement && rm -rf /etc/rhsm + +RUN python3 -m pip install --no-cache-dir numpy==1.23.1 +# 4.8 with a fix for building tests +ARG OPENCV_BRANCH="377be68d923e40900ac5526242bcf221e3f355e5" +WORKDIR /opt/repo +RUN git clone https://github.com/opencv/opencv.git +WORKDIR /opt/repo/opencv +RUN git checkout ${OPENCV_BRANCH} +WORKDIR /opt/repo/opencv/build + +# hadolint ignore=SC2046 +RUN . "${INTEL_OPENVINO_DIR}"/setupvars.sh; \ + cmake \ + -D BUILD_INFO_SKIP_EXTRA_MODULES=ON \ + -D BUILD_EXAMPLES=OFF \ + -D BUILD_JASPER=OFF \ + -D BUILD_JAVA=OFF \ + -D BUILD_JPEG=ON \ + -D BUILD_APPS_LIST=version \ + -D BUILD_opencv_apps=ON \ + -D BUILD_opencv_java=OFF \ + -D BUILD_OPENEXR=OFF \ + -D BUILD_PNG=ON \ + -D BUILD_TBB=OFF \ + -D BUILD_WEBP=OFF \ + -D BUILD_ZLIB=ON \ + -D BUILD_TESTS=ON \ + -D WITH_1394=OFF \ + -D WITH_CUDA=OFF \ + -D WITH_EIGEN=OFF \ + -D WITH_GPHOTO2=OFF \ + -D WITH_GSTREAMER=ON \ + -D OPENCV_GAPI_GSTREAMER=OFF \ + -D WITH_GTK_2_X=OFF \ + -D WITH_IPP=ON \ + -D WITH_JASPER=OFF \ + -D WITH_LAPACK=OFF \ + -D WITH_MATLAB=OFF \ + -D WITH_MFX=OFF \ + -D WITH_OPENCLAMDBLAS=OFF \ + -D WITH_OPENCLAMDFFT=OFF \ + -D WITH_OPENEXR=OFF \ + -D WITH_OPENJPEG=OFF \ + -D WITH_QUIRC=OFF \ + -D WITH_TBB=OFF \ + -D WITH_TIFF=OFF \ + -D WITH_VTK=OFF \ + -D WITH_WEBP=OFF \ + -D CMAKE_USE_RELATIVE_PATHS=ON \ + -D CMAKE_SKIP_INSTALL_RPATH=ON \ + -D ENABLE_BUILD_HARDENING=ON \ + -D ENABLE_CONFIG_VERIFICATION=ON \ + -D ENABLE_PRECOMPILED_HEADERS=OFF \ + -D ENABLE_CXX11=ON \ + -D INSTALL_PDB=ON \ + -D INSTALL_TESTS=ON \ + -D INSTALL_C_EXAMPLES=OFF \ + -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D CMAKE_INSTALL_PREFIX=install \ + -D OPENCV_SKIP_PKGCONFIG_GENERATION=ON \ + -D OPENCV_SKIP_PYTHON_LOADER=OFF \ + -D OPENCV_SKIP_CMAKE_ROOT_CONFIG=ON \ + -D OPENCV_GENERATE_SETUPVARS=OFF \ + -D OPENCV_BIN_INSTALL_PATH=bin \ + -D OPENCV_INCLUDE_INSTALL_PATH=include \ + -D OPENCV_LIB_INSTALL_PATH=lib \ + -D OPENCV_CONFIG_INSTALL_PATH=cmake \ + -D OPENCV_3P_LIB_INSTALL_PATH=3rdparty \ + -D OPENCV_SAMPLES_SRC_INSTALL_PATH=samples \ + -D OPENCV_DOC_INSTALL_PATH=doc \ + -D OPENCV_OTHER_INSTALL_PATH=etc \ + -D OPENCV_LICENSES_INSTALL_PATH=etc/licenses \ + -D OPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT=ON \ + -D BUILD_opencv_world=OFF \ + -D BUILD_opencv_python2=OFF \ + -D BUILD_opencv_python3=ON \ + -D BUILD_opencv_dnn=OFF \ + -D BUILD_opencv_gapi=OFF \ + -D PYTHON3_PACKAGES_PATH=install/python/python3 \ + -D PYTHON3_LIMITED_API=ON \ + -D HIGHGUI_PLUGIN_LIST=all \ + -D OPENCV_PYTHON_INSTALL_PATH=python \ + -D CPU_BASELINE=SSE4_2 \ + -D OPENCV_IPP_GAUSSIAN_BLUR=ON \ + -D WITH_INF_ENGINE=ON \ + -D InferenceEngine_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D ngraph_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D INF_ENGINE_RELEASE=2022010000 \ + -D VIDEOIO_PLUGIN_LIST=ffmpeg,gstreamer \ + -D CMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined \ + -D CMAKE_BUILD_TYPE=Release /opt/repo/opencv && \ + make -j$(nproc) && cmake -P cmake_install.cmake && \ + rm -Rf install/bin install/etc/samples + +WORKDIR /opt/repo/opencv/build/install +CMD ["/bin/bash"] +# ------------------------------------------------------------------------------------------------- + + + + +# ----------------- +FROM registry.access.redhat.com/ubi8:8.9 AS ov_base + +LABEL name="rhel8_dev" \ + maintainer="openvino_docker@intel.com" \ + vendor="Intel Corporation" \ + version="2024.2.0" \ + release="2024.2.0" \ + summary="Provides the latest release of Intel(R) Distribution of OpenVINO(TM) toolkit." \ + description="This is the dev image for Intel(R) Distribution of OpenVINO(TM) toolkit on RHEL UBI 8" + +WORKDIR / +USER root + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + + + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + + + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel /opt/intel + + + +ARG LGPL_DEPS="gcc-c++ \ + glibc \ + libstdc++ \ + libgcc" +ARG INSTALL_PACKAGES="-c=opencv_req -c=python -c=opencv_opt -c=core -c=dev" + +ARG INSTALL_SOURCES="no" + +# hadolint ignore=SC2016 +RUN sed -i -e 's|https://vault.centos.org/centos/8/PowerTools/$arch/os/Packages/gflags-devel-2.1.2-6|http://mirror.centos.org/centos/8-stream/PowerTools/$arch/os/Packages/gflags-devel-2.2.2-1|g' ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh && \ + sed -i -e 's|https://vault.centos.org/centos/8/PowerTools/$arch/os/Packages/gflags-2.1.2-6|http://mirror.centos.org/centos/8-stream/PowerTools/$arch/os/Packages/gflags-2.2.2-1|g' ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh + +WORKDIR /thirdparty +# hadolint ignore=DL3031, DL3033, SC2012 +RUN rpm -qa --qf "%{name}\n" > base_packages.txt && \ + yum install -y ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y $INSTALL_PACKAGES && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + yum install -y yum-utils && \ + rpm -qa --qf "%{name}\n" > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + rpm -qa $package --qf "%{name}: %{license}\n" | grep GPL; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + yumdownloader --skip-broken --source -y $package; \ + fi \ + done && \ + yum autoremove -y yum-utils && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + yum clean all && rm -rf /var/cache/yum + + +RUN rm -Rf /etc/pki/entitlement /etc/rhsm/ca /etc/rhsm/rhsm.conf + + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + +WORKDIR /licenses +RUN cp -rf "${INTEL_OPENVINO_DIR}"/licensing /licenses + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.8 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# dev package +WORKDIR ${INTEL_OPENVINO_DIR} +ARG OPENVINO_WHEELS_VERSION=2024.2.0 +ARG OPENVINO_WHEELS_URL +# hadolint ignore=SC2102,DL3033 +RUN yum install -y cmake git && yum clean all && \ + if [ -z "$OPENVINO_WHEELS_URL" ]; then \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --extra-index-url https://download.pytorch.org/whl/cpu; \ + else \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" && \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" --extra-index-url https://download.pytorch.org/whl/cpu ; \ + fi + +# download source for PyPi LGPL packages +WORKDIR /thirdparty +RUN if [ "$INSTALL_SOURCES" = "yes" ]; then \ + curl -L https://files.pythonhosted.org/packages/ee/2d/9cdc2b527e127b4c9db64b86647d567985940ac3698eeabc7ffaccb4ea61/chardet-4.0.0.tar.gz --output chardet-4.0.0.tar.gz; \ + curl -L https://files.pythonhosted.org/packages/81/41/e6cb9026374771e3bdb4c0fe8ac0c51c693a14b4f72f26275da15f7a4d8b/ethtool-0.14.tar.gz --output ethtool-0.14.tar.gz; \ + curl -L https://files.pythonhosted.org/packages/ef/86/c5a34243a932346c59cb25eb49a4d1dec227974209eb9b618d0ed57ea5be/gpg-1.10.0.tar.gz --output gpg-1.10.0.tar.gz; \ + curl -L https://files.pythonhosted.org/packages/e0/e8/1e4f21800015a9ca153969e85fc29f7962f8f82fc5dbc1ecbdeb9dc54c75/PyGObject-3.28.3.tar.gz --output PyGObject-3.28.3.tar.gz; \ + fi + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN curl -L https://raw.githubusercontent.com/openvinotoolkit/docker_ci/master/dockerfiles/rhel8/third-party-programs-docker-runtime.txt --output third-party-programs-docker-runtime.txt && \ + curl -L https://raw.githubusercontent.com/openvinotoolkit/docker_ci/master/dockerfiles/rhel8/third-party-programs-docker-dev.txt --output third-party-programs-docker-dev.txt + +COPY --from=opencv /opt/repo/opencv/build/install ${INTEL_OPENVINO_DIR}/extras/opencv +RUN echo "export OpenCV_DIR=${INTEL_OPENVINO_DIR}/extras/opencv/cmake" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh"; \ + echo "export LD_LIBRARY_PATH=${INTEL_OPENVINO_DIR}/extras/opencv/lib:\$LD_LIBRARY_PATH" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh" + +# Install dependencies needed by OV::RemoteTensor +RUN yum install -y \ + https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/opencl-headers-2.2-1.20180306gite986688.el8.noarch.rpm \ + https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/ocl-icd-devel-2.2.12-1.el8.x86_64.rpm \ + https://vault.centos.org/centos/8/AppStream/x86_64/os/Packages/ocl-icd-2.2.12-1.el8.x86_64.rpm && \ + yum clean all + +# build samples into ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin +WORKDIR "${INTEL_OPENVINO_DIR}"/samples/cpp +RUN ./build_samples.sh -b /tmp/build -i ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin && \ + rm -Rf /tmp/build + +# add Model API package +# hadolint ignore=DL3013 +RUN git clone https://github.com/openvinotoolkit/open_model_zoo && \ + sed -i '/opencv-python/d' open_model_zoo/demos/common/python/requirements.txt && \ + pip3 --no-cache-dir install open_model_zoo/demos/common/python/ && \ + rm -Rf open_model_zoo && \ + python3 -c "from model_zoo import model_api" + +# for CPU + +# for GPU +RUN groupmod -g 44 video +# hadolint ignore=DL3041 +RUN dnf install -y libedit ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-gmmlib-22.3.1-i529.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-igc-core-1.0.12504.6-i537.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-igc-opencl-1.0.12504.6-i537.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-opencl-22.43.24595.35-i538.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-level-zero-gpu-1.3.24595.35-i538.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/level-zero-1.8.8-i524.el8.x86_64.rpm ; \ + rpm -ivh http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/ocl-icd-2.2.12-1.el8.x86_64.rpm ; \ + dnf clean all + + +# Post-installation cleanup and setting up OpenVINO environment variables + +RUN rm -rf /tmp && mkdir /tmp + + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/rhel8/openvino_cg_runtime_2024.1.0.dockerfile b/dockerfiles/rhel8/openvino_cg_runtime_2024.1.0.dockerfile new file mode 100644 index 00000000..ff8f6163 --- /dev/null +++ b/dockerfiles/rhel8/openvino_cg_runtime_2024.1.0.dockerfile @@ -0,0 +1,185 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM registry.access.redhat.com/ubi8:8.9 AS base +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + + +# get product from URL +ARG package_url +ARG TEMP_DIR=/tmp/openvino_installer + + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + + +# install product by copying archive content + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + + +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + + +# ----------------- +FROM registry.access.redhat.com/ubi8:8.9 AS ov_base + +LABEL name="rhel8_runtime" \ + maintainer="openvino_docker@intel.com" \ + vendor="Intel Corporation" \ + version="2024.1.0" \ + release="2024.1.0" \ + summary="Provides the latest release of Intel(R) Distribution of OpenVINO(TM) toolkit." \ + description="This is the runtime image for Intel(R) Distribution of OpenVINO(TM) toolkit on RHEL UBI 8" + +WORKDIR / +USER root + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + + + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + + + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel /opt/intel + + + +ARG LGPL_DEPS="bash" # no new packages +ARG INSTALL_PACKAGES="-c=python -c=core" + +ARG INSTALL_SOURCES="no" + +# hadolint ignore=SC2016 +RUN sed -i -e 's|https://vault.centos.org/centos/8/PowerTools/$arch/os/Packages/gflags-devel-2.1.2-6|http://mirror.centos.org/centos/8-stream/PowerTools/$arch/os/Packages/gflags-devel-2.2.2-1|g' ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh && \ + sed -i -e 's|https://vault.centos.org/centos/8/PowerTools/$arch/os/Packages/gflags-2.1.2-6|http://mirror.centos.org/centos/8-stream/PowerTools/$arch/os/Packages/gflags-2.2.2-1|g' ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh + +WORKDIR /thirdparty +# hadolint ignore=DL3031, DL3033, SC2012 +RUN rpm -qa --qf "%{name}\n" > base_packages.txt && \ + yum install -y ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y $INSTALL_PACKAGES && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + yum install -y yum-utils && \ + rpm -qa --qf "%{name}\n" > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + rpm -qa $package --qf "%{name}: %{license}\n" | grep GPL; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + yumdownloader --skip-broken --source -y $package; \ + fi \ + done && \ + yum autoremove -y yum-utils && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + yum clean all && rm -rf /var/cache/yum + + +RUN rm -Rf /etc/pki/entitlement /etc/rhsm/ca /etc/rhsm/rhsm.conf + + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + +WORKDIR /licenses +RUN cp -rf "${INTEL_OPENVINO_DIR}"/licensing /licenses + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.8 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# Install OpenVINO python API dependency +RUN ${PYTHON_VER} -m pip install --no-cache-dir numpy==1.24.4 + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN curl -L https://raw.githubusercontent.com/openvinotoolkit/docker_ci/master/dockerfiles/rhel8/third-party-programs-docker-runtime.txt --output third-party-programs-docker-runtime.txt + +# for CPU + +# for GPU +RUN groupmod -g 44 video +# hadolint ignore=DL3041 +RUN dnf install -y libedit ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-gmmlib-22.3.1-i529.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-igc-core-1.0.12504.6-i537.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-igc-opencl-1.0.12504.6-i537.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-opencl-22.43.24595.35-i538.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-level-zero-gpu-1.3.24595.35-i538.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/level-zero-1.8.8-i524.el8.x86_64.rpm ; \ + rpm -ivh http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/ocl-icd-2.2.12-1.el8.x86_64.rpm ; \ + dnf clean all + + +# Post-installation cleanup and setting up OpenVINO environment variables + +RUN rm -rf /tmp && mkdir /tmp + + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/rhel8/openvino_cg_runtime_2024.2.0.dockerfile b/dockerfiles/rhel8/openvino_cg_runtime_2024.2.0.dockerfile new file mode 100644 index 00000000..f5f45d06 --- /dev/null +++ b/dockerfiles/rhel8/openvino_cg_runtime_2024.2.0.dockerfile @@ -0,0 +1,186 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM registry.access.redhat.com/ubi8:8.9 AS base +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/linux/l_openvino_toolkit_rhel8_2024.2.0.15519.5c0f38f83f6_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + + +# install product by copying archive content + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + + +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + + +# ----------------- +FROM registry.access.redhat.com/ubi8:8.9 AS ov_base + +LABEL name="rhel8_runtime" \ + maintainer="openvino_docker@intel.com" \ + vendor="Intel Corporation" \ + version="2024.2.0" \ + release="2024.2.0" \ + summary="Provides the latest release of Intel(R) Distribution of OpenVINO(TM) toolkit." \ + description="This is the runtime image for Intel(R) Distribution of OpenVINO(TM) toolkit on RHEL UBI 8" + +WORKDIR / +USER root + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + + + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + + + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel /opt/intel + + + +# no new packages +ARG LGPL_DEPS="bash" +ARG INSTALL_PACKAGES="-c=python -c=core" + +ARG INSTALL_SOURCES="no" + +# hadolint ignore=SC2016 +RUN sed -i -e 's|https://vault.centos.org/centos/8/PowerTools/$arch/os/Packages/gflags-devel-2.1.2-6|http://mirror.centos.org/centos/8-stream/PowerTools/$arch/os/Packages/gflags-devel-2.2.2-1|g' ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh && \ + sed -i -e 's|https://vault.centos.org/centos/8/PowerTools/$arch/os/Packages/gflags-2.1.2-6|http://mirror.centos.org/centos/8-stream/PowerTools/$arch/os/Packages/gflags-2.2.2-1|g' ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh + +WORKDIR /thirdparty +# hadolint ignore=DL3031, DL3033, SC2012 +RUN rpm -qa --qf "%{name}\n" > base_packages.txt && \ + yum install -y ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y $INSTALL_PACKAGES && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + yum install -y yum-utils && \ + rpm -qa --qf "%{name}\n" > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + rpm -qa $package --qf "%{name}: %{license}\n" | grep GPL; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + yumdownloader --skip-broken --source -y $package; \ + fi \ + done && \ + yum autoremove -y yum-utils && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + yum clean all && rm -rf /var/cache/yum + + +RUN rm -Rf /etc/pki/entitlement /etc/rhsm/ca /etc/rhsm/rhsm.conf + + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + +WORKDIR /licenses +RUN cp -rf "${INTEL_OPENVINO_DIR}"/licensing /licenses + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.8 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# Install OpenVINO python API dependency +RUN ${PYTHON_VER} -m pip install --no-cache-dir numpy==1.24.4 + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN curl -L https://raw.githubusercontent.com/openvinotoolkit/docker_ci/master/dockerfiles/rhel8/third-party-programs-docker-runtime.txt --output third-party-programs-docker-runtime.txt + +# for CPU + +# for GPU +RUN groupmod -g 44 video +# hadolint ignore=DL3041 +RUN dnf install -y libedit ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-gmmlib-22.3.1-i529.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-igc-core-1.0.12504.6-i537.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-igc-opencl-1.0.12504.6-i537.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-opencl-22.43.24595.35-i538.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/intel-level-zero-gpu-1.3.24595.35-i538.el8.x86_64.rpm ; \ + rpm -ivh https://repositories.intel.com/graphics/rhel/8.6/level-zero-1.8.8-i524.el8.x86_64.rpm ; \ + rpm -ivh http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/ocl-icd-2.2.12-1.el8.x86_64.rpm ; \ + dnf clean all + + +# Post-installation cleanup and setting up OpenVINO environment variables + +RUN rm -rf /tmp && mkdir /tmp + + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/ubuntu20/openvino_cg_dev_2024.1.0.dockerfile b/dockerfiles/ubuntu20/openvino_cg_dev_2024.1.0.dockerfile new file mode 100644 index 00000000..c66bdfb6 --- /dev/null +++ b/dockerfiles/ubuntu20/openvino_cg_dev_2024.1.0.dockerfile @@ -0,0 +1,359 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM ubuntu:20.04 AS base + +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# hadolint ignore=DL3008 +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl tzdata ca-certificates && \ + rm -rf /var/lib/apt/lists/* + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.1/linux/l_openvino_toolkit_ubuntu20_2024.1.0.15008.f4afc983258_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + +# install product by copying archive content +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM base AS opencv + +LABEL description="This is the dev image for OpenCV building with OpenVINO Runtime backend" +LABEL vendor="Intel Corporation" + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update; \ + apt-get install -y --no-install-recommends \ + git \ + python3-dev \ + python3-pip \ + build-essential \ + cmake \ + ninja-build \ + libgtk-3-dev \ + libpng-dev \ + libjpeg-dev \ + libwebp-dev \ + libtiff5-dev \ + libopenexr-dev \ + libopenblas-dev \ + libx11-dev \ + libavutil-dev \ + libavcodec-dev \ + libavformat-dev \ + libswscale-dev \ + libavresample-dev \ + libtbb2 \ + libssl-dev \ + libva-dev \ + libmfx-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev && \ + rm -rf /var/lib/apt/lists/* + +RUN python3 -m pip install --no-cache-dir numpy==1.23.1 + +# 4.8 with a fix for building tests +ARG OPENCV_BRANCH="377be68d923e40900ac5526242bcf221e3f355e5" +WORKDIR /opt/repo +RUN git clone https://github.com/opencv/opencv.git +WORKDIR /opt/repo/opencv +RUN git checkout ${OPENCV_BRANCH} +WORKDIR /opt/repo/opencv/build + +# hadolint ignore=SC1091 +RUN . "${INTEL_OPENVINO_DIR}"/setupvars.sh; \ + cmake -G Ninja \ + -D BUILD_INFO_SKIP_EXTRA_MODULES=ON \ + -D BUILD_EXAMPLES=OFF \ + -D BUILD_JASPER=OFF \ + -D BUILD_JAVA=OFF \ + -D BUILD_JPEG=ON \ + -D BUILD_APPS_LIST=version \ + -D BUILD_opencv_apps=ON \ + -D BUILD_opencv_java=OFF \ + -D BUILD_OPENEXR=OFF \ + -D BUILD_PNG=ON \ + -D BUILD_TBB=OFF \ + -D BUILD_WEBP=OFF \ + -D BUILD_ZLIB=ON \ + -D BUILD_TESTS=ON \ + -D WITH_1394=OFF \ + -D WITH_CUDA=OFF \ + -D WITH_EIGEN=OFF \ + -D WITH_GPHOTO2=OFF \ + -D WITH_GSTREAMER=ON \ + -D OPENCV_GAPI_GSTREAMER=OFF \ + -D WITH_GTK_2_X=OFF \ + -D WITH_IPP=ON \ + -D WITH_JASPER=OFF \ + -D WITH_LAPACK=OFF \ + -D WITH_MATLAB=OFF \ + -D WITH_MFX=ON \ + -D WITH_OPENCLAMDBLAS=OFF \ + -D WITH_OPENCLAMDFFT=OFF \ + -D WITH_OPENEXR=OFF \ + -D WITH_OPENJPEG=OFF \ + -D WITH_QUIRC=OFF \ + -D WITH_TBB=OFF \ + -D WITH_TIFF=OFF \ + -D WITH_VTK=OFF \ + -D WITH_WEBP=OFF \ + -D CMAKE_USE_RELATIVE_PATHS=ON \ + -D CMAKE_SKIP_INSTALL_RPATH=ON \ + -D ENABLE_BUILD_HARDENING=ON \ + -D ENABLE_CONFIG_VERIFICATION=ON \ + -D ENABLE_PRECOMPILED_HEADERS=OFF \ + -D ENABLE_CXX11=ON \ + -D INSTALL_PDB=ON \ + -D INSTALL_TESTS=OFF \ + -D INSTALL_C_EXAMPLES=OFF \ + -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D CMAKE_INSTALL_PREFIX=install \ + -D OPENCV_SKIP_PKGCONFIG_GENERATION=ON \ + -D OPENCV_SKIP_PYTHON_LOADER=OFF \ + -D OPENCV_SKIP_CMAKE_ROOT_CONFIG=ON \ + -D OPENCV_GENERATE_SETUPVARS=OFF \ + -D OPENCV_BIN_INSTALL_PATH=bin \ + -D OPENCV_INCLUDE_INSTALL_PATH=include \ + -D OPENCV_LIB_INSTALL_PATH=lib \ + -D OPENCV_CONFIG_INSTALL_PATH=cmake \ + -D OPENCV_3P_LIB_INSTALL_PATH=3rdparty \ + -D OPENCV_DOC_INSTALL_PATH=doc \ + -D OPENCV_OTHER_INSTALL_PATH=etc \ + -D OPENCV_LICENSES_INSTALL_PATH=etc/licenses \ + -D OPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT=ON \ + -D BUILD_opencv_world=OFF \ + -D BUILD_opencv_python2=OFF \ + -D BUILD_opencv_python3=ON \ + -D BUILD_opencv_dnn=OFF \ + -D BUILD_opencv_gapi=OFF \ + -D PYTHON3_PACKAGES_PATH=install/python/python3 \ + -D PYTHON3_LIMITED_API=ON \ + -D HIGHGUI_PLUGIN_LIST=all \ + -D OPENCV_PYTHON_INSTALL_PATH=python \ + -D CPU_BASELINE=SSE4_2 \ + -D OPENCV_IPP_GAUSSIAN_BLUR=ON \ + -D WITH_INF_ENGINE=ON \ + -D InferenceEngine_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D ngraph_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D INF_ENGINE_RELEASE=2022010000 \ + -D VIDEOIO_PLUGIN_LIST=ffmpeg,gstreamer,mfx \ + -D CMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined \ + -D CMAKE_BUILD_TYPE=Release /opt/repo/opencv && \ + ninja -j "$(nproc)" && cmake --install . && \ + rm -Rf install/bin install/etc/samples + +WORKDIR /opt/repo/opencv/build/install +CMD ["/bin/bash"] +# ------------------------------------------------------------------------------------------------- + + +FROM ubuntu:20.04 AS ov_base + +LABEL description="This is the dev image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 20.04 LTS" +LABEL vendor="Intel Corporation" + +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + +RUN mkdir /opt/intel + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel/ /opt/intel/ + +WORKDIR /thirdparty + +ARG INSTALL_SOURCES="no" + +ARG DEPS="tzdata \ + curl" + +ARG LGPL_DEPS="g++ \ + gcc \ + libc6-dev" +ARG INSTALL_PACKAGES="-c=python -c=core -c=dev" + + +# hadolint ignore=DL3008 +RUN apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \ + apt-get install -y --no-install-recommends ${DEPS} && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get reinstall -y ca-certificates && rm -rf /var/lib/apt/lists/* && update-ca-certificates + +# hadolint ignore=DL3008, SC2012 +RUN apt-get update && \ + apt-get install -y --no-install-recommends ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \ + apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + name=(${package//:/ }); \ + grep -l GPL /usr/share/doc/${name[0]}/copyright; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + apt-get source -q --download-only $package; \ + fi \ + done && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + rm /usr/lib/python3.*/lib-dynload/readline.cpython-3*-gnu.so && rm -rf /var/lib/apt/lists/* + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.8 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# dev package +WORKDIR ${INTEL_OPENVINO_DIR} +ARG OPENVINO_WHEELS_VERSION=2024.1.0 +ARG OPENVINO_WHEELS_URL +# hadolint ignore=SC2102 +RUN apt-get update && apt-get install -y --no-install-recommends cmake make git && rm -rf /var/lib/apt/lists/* && \ + if [ -z "$OPENVINO_WHEELS_URL" ]; then \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino=="$OPENVINO_WHEELS_VERSION" && \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --extra-index-url https://download.pytorch.org/whl/cpu; \ + else \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" && \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" --extra-index-url https://download.pytorch.org/whl/cpu; \ + fi + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +# Please use `third-party-programs-docker-dev.txt` short path to 3d party file if you use the Dockerfile directly from docker_ci/dockerfiles repo folder +COPY third-party-programs-docker-dev.txt ${INTEL_OPENVINO_DIR}/licensing +COPY third-party-programs-docker-runtime.txt ${INTEL_OPENVINO_DIR}/licensing + +COPY --from=opencv /opt/repo/opencv/build/install ${INTEL_OPENVINO_DIR}/extras/opencv +RUN echo "export OpenCV_DIR=${INTEL_OPENVINO_DIR}/extras/opencv/cmake" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh"; \ + echo "export LD_LIBRARY_PATH=${INTEL_OPENVINO_DIR}/extras/opencv/lib:\$LD_LIBRARY_PATH" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh" + +# Install dependencies for OV::RemoteTensor +RUN apt-get update && apt-get install -y --no-install-recommends opencl-headers ocl-icd-opencl-dev && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + +# build samples into ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin +WORKDIR ${INTEL_OPENVINO_DIR}/samples/cpp +RUN ./build_samples.sh -b /tmp/build -i ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin && \ + rm -Rf /tmp/build + +# add Model API package +# hadolint ignore=DL3013 +RUN git clone https://github.com/openvinotoolkit/open_model_zoo && \ + sed -i '/opencv-python/d' open_model_zoo/demos/common/python/requirements.txt && \ + pip3 --no-cache-dir install open_model_zoo/demos/common/python/ && \ + rm -Rf open_model_zoo && \ + python3 -c "from model_zoo import model_api" + +# for CPU + +# for GPU + +RUN apt-get update && apt-get install -y --no-install-recommends gpg gpg-agent && \ + curl https://repositories.intel.com/graphics/intel-graphics.key | gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg && \ + echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu focal-legacy main' | tee /etc/apt/sources.list.d/intel.gpu.focal.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + intel-opencl-icd=22.43.24595.35+i538~20.04 \ + intel-level-zero-gpu=1.3.24595.35+i538~20.04 \ + level-zero=1.8.8+i524~u20.04 \ + ocl-icd-libopencl1 && \ + apt-get purge gpg gpg-agent --yes && apt-get --yes autoremove && \ + apt-get clean ; \ + rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + + +# Post-installation cleanup and setting up OpenVINO environment variables +ENV LIBVA_DRIVER_NAME=iHD +ENV GST_VAAPI_ALL_DRIVERS=1 +ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + +RUN apt-get update && \ + apt-get autoremove -y gfortran && \ + rm -rf /var/lib/apt/lists/* + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} +ENV DEBIAN_FRONTEND=noninteractive + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/ubuntu20/openvino_cg_dev_2024.2.0.dockerfile b/dockerfiles/ubuntu20/openvino_cg_dev_2024.2.0.dockerfile new file mode 100644 index 00000000..c53efdc4 --- /dev/null +++ b/dockerfiles/ubuntu20/openvino_cg_dev_2024.2.0.dockerfile @@ -0,0 +1,358 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM ubuntu:20.04 AS base + +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# hadolint ignore=DL3008 +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl tzdata ca-certificates && \ + rm -rf /var/lib/apt/lists/* + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/linux/l_openvino_toolkit_ubuntu20_2024.2.0.15519.5c0f38f83f6_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + +# install product by copying archive content +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM base AS opencv + +LABEL description="This is the dev image for OpenCV building with OpenVINO Runtime backend" +LABEL vendor="Intel Corporation" + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update; \ + apt-get install -y --no-install-recommends \ + git \ + python3-dev \ + python3-pip \ + build-essential \ + cmake \ + ninja-build \ + libgtk-3-dev \ + libpng-dev \ + libjpeg-dev \ + libwebp-dev \ + libtiff5-dev \ + libopenexr-dev \ + libopenblas-dev \ + libx11-dev \ + libavutil-dev \ + libavcodec-dev \ + libavformat-dev \ + libswscale-dev \ + libavresample-dev \ + libtbb2 \ + libssl-dev \ + libva-dev \ + libmfx-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev && \ + rm -rf /var/lib/apt/lists/* + +RUN python3 -m pip install --no-cache-dir numpy==1.23.1 +# 4.8 with a fix for building tests +ARG OPENCV_BRANCH="377be68d923e40900ac5526242bcf221e3f355e5" +WORKDIR /opt/repo +RUN git clone https://github.com/opencv/opencv.git +WORKDIR /opt/repo/opencv +RUN git checkout ${OPENCV_BRANCH} +WORKDIR /opt/repo/opencv/build + +# hadolint ignore=SC1091 +RUN . "${INTEL_OPENVINO_DIR}"/setupvars.sh; \ + cmake -G Ninja \ + -D BUILD_INFO_SKIP_EXTRA_MODULES=ON \ + -D BUILD_EXAMPLES=OFF \ + -D BUILD_JASPER=OFF \ + -D BUILD_JAVA=OFF \ + -D BUILD_JPEG=ON \ + -D BUILD_APPS_LIST=version \ + -D BUILD_opencv_apps=ON \ + -D BUILD_opencv_java=OFF \ + -D BUILD_OPENEXR=OFF \ + -D BUILD_PNG=ON \ + -D BUILD_TBB=OFF \ + -D BUILD_WEBP=OFF \ + -D BUILD_ZLIB=ON \ + -D BUILD_TESTS=ON \ + -D WITH_1394=OFF \ + -D WITH_CUDA=OFF \ + -D WITH_EIGEN=OFF \ + -D WITH_GPHOTO2=OFF \ + -D WITH_GSTREAMER=ON \ + -D OPENCV_GAPI_GSTREAMER=OFF \ + -D WITH_GTK_2_X=OFF \ + -D WITH_IPP=ON \ + -D WITH_JASPER=OFF \ + -D WITH_LAPACK=OFF \ + -D WITH_MATLAB=OFF \ + -D WITH_MFX=ON \ + -D WITH_OPENCLAMDBLAS=OFF \ + -D WITH_OPENCLAMDFFT=OFF \ + -D WITH_OPENEXR=OFF \ + -D WITH_OPENJPEG=OFF \ + -D WITH_QUIRC=OFF \ + -D WITH_TBB=OFF \ + -D WITH_TIFF=OFF \ + -D WITH_VTK=OFF \ + -D WITH_WEBP=OFF \ + -D CMAKE_USE_RELATIVE_PATHS=ON \ + -D CMAKE_SKIP_INSTALL_RPATH=ON \ + -D ENABLE_BUILD_HARDENING=ON \ + -D ENABLE_CONFIG_VERIFICATION=ON \ + -D ENABLE_PRECOMPILED_HEADERS=OFF \ + -D ENABLE_CXX11=ON \ + -D INSTALL_PDB=ON \ + -D INSTALL_TESTS=OFF \ + -D INSTALL_C_EXAMPLES=OFF \ + -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D CMAKE_INSTALL_PREFIX=install \ + -D OPENCV_SKIP_PKGCONFIG_GENERATION=ON \ + -D OPENCV_SKIP_PYTHON_LOADER=OFF \ + -D OPENCV_SKIP_CMAKE_ROOT_CONFIG=ON \ + -D OPENCV_GENERATE_SETUPVARS=OFF \ + -D OPENCV_BIN_INSTALL_PATH=bin \ + -D OPENCV_INCLUDE_INSTALL_PATH=include \ + -D OPENCV_LIB_INSTALL_PATH=lib \ + -D OPENCV_CONFIG_INSTALL_PATH=cmake \ + -D OPENCV_3P_LIB_INSTALL_PATH=3rdparty \ + -D OPENCV_DOC_INSTALL_PATH=doc \ + -D OPENCV_OTHER_INSTALL_PATH=etc \ + -D OPENCV_LICENSES_INSTALL_PATH=etc/licenses \ + -D OPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT=ON \ + -D BUILD_opencv_world=OFF \ + -D BUILD_opencv_python2=OFF \ + -D BUILD_opencv_python3=ON \ + -D BUILD_opencv_dnn=OFF \ + -D BUILD_opencv_gapi=OFF \ + -D PYTHON3_PACKAGES_PATH=install/python/python3 \ + -D PYTHON3_LIMITED_API=ON \ + -D HIGHGUI_PLUGIN_LIST=all \ + -D OPENCV_PYTHON_INSTALL_PATH=python \ + -D CPU_BASELINE=SSE4_2 \ + -D OPENCV_IPP_GAUSSIAN_BLUR=ON \ + -D WITH_INF_ENGINE=ON \ + -D InferenceEngine_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D ngraph_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D INF_ENGINE_RELEASE=2022010000 \ + -D VIDEOIO_PLUGIN_LIST=ffmpeg,gstreamer,mfx \ + -D CMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined \ + -D CMAKE_BUILD_TYPE=Release /opt/repo/opencv && \ + ninja -j "$(nproc)" && cmake --install . && \ + rm -Rf install/bin install/etc/samples + +WORKDIR /opt/repo/opencv/build/install +CMD ["/bin/bash"] +# ------------------------------------------------------------------------------------------------- + + +FROM ubuntu:20.04 AS ov_base + +LABEL description="This is the dev image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 20.04 LTS" +LABEL vendor="Intel Corporation" + +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + +RUN mkdir /opt/intel + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel/ /opt/intel/ + +WORKDIR /thirdparty + +ARG INSTALL_SOURCES="no" + +ARG DEPS="tzdata \ + curl" + +ARG LGPL_DEPS="g++ \ + gcc \ + libc6-dev" +ARG INSTALL_PACKAGES="-c=python -c=core -c=dev" + + +# hadolint ignore=DL3008 +RUN apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \ + apt-get install -y --no-install-recommends ${DEPS} && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get reinstall -y ca-certificates && rm -rf /var/lib/apt/lists/* && update-ca-certificates + +# hadolint ignore=DL3008, SC2012 +RUN apt-get update && \ + apt-get install -y --no-install-recommends ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \ + apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + name=(${package//:/ }); \ + grep -l GPL /usr/share/doc/${name[0]}/copyright; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + apt-get source -q --download-only $package; \ + fi \ + done && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + rm /usr/lib/python3.*/lib-dynload/readline.cpython-3*-gnu.so && rm -rf /var/lib/apt/lists/* + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.8 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# dev package +WORKDIR ${INTEL_OPENVINO_DIR} +ARG OPENVINO_WHEELS_VERSION=2024.2.0 +ARG OPENVINO_WHEELS_URL +# hadolint ignore=SC2102 +RUN apt-get update && apt-get install -y --no-install-recommends cmake make git && rm -rf /var/lib/apt/lists/* && \ + if [ -z "$OPENVINO_WHEELS_URL" ]; then \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino=="$OPENVINO_WHEELS_VERSION" && \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --extra-index-url https://download.pytorch.org/whl/cpu; \ + else \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" && \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" --extra-index-url https://download.pytorch.org/whl/cpu; \ + fi + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +# Please use `third-party-programs-docker-dev.txt` short path to 3d party file if you use the Dockerfile directly from docker_ci/dockerfiles repo folder +COPY third-party-programs-docker-dev.txt ${INTEL_OPENVINO_DIR}/licensing +COPY third-party-programs-docker-runtime.txt ${INTEL_OPENVINO_DIR}/licensing + +COPY --from=opencv /opt/repo/opencv/build/install ${INTEL_OPENVINO_DIR}/extras/opencv +RUN echo "export OpenCV_DIR=${INTEL_OPENVINO_DIR}/extras/opencv/cmake" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh"; \ + echo "export LD_LIBRARY_PATH=${INTEL_OPENVINO_DIR}/extras/opencv/lib:\$LD_LIBRARY_PATH" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh" + +# Install dependencies for OV::RemoteTensor +RUN apt-get update && apt-get install -y --no-install-recommends opencl-headers ocl-icd-opencl-dev && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + +# build samples into ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin +WORKDIR ${INTEL_OPENVINO_DIR}/samples/cpp +RUN ./build_samples.sh -b /tmp/build -i ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin && \ + rm -Rf /tmp/build + +# add Model API package +# hadolint ignore=DL3013 +RUN git clone https://github.com/openvinotoolkit/open_model_zoo && \ + sed -i '/opencv-python/d' open_model_zoo/demos/common/python/requirements.txt && \ + pip3 --no-cache-dir install open_model_zoo/demos/common/python/ && \ + rm -Rf open_model_zoo && \ + python3 -c "from model_zoo import model_api" + +# for CPU + +# for GPU + +RUN apt-get update && apt-get install -y --no-install-recommends gpg gpg-agent && \ + curl https://repositories.intel.com/graphics/intel-graphics.key | gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg && \ + echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu focal-legacy main' | tee /etc/apt/sources.list.d/intel.gpu.focal.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + intel-opencl-icd=22.43.24595.35+i538~20.04 \ + intel-level-zero-gpu=1.3.24595.35+i538~20.04 \ + level-zero=1.8.8+i524~u20.04 \ + ocl-icd-libopencl1 && \ + apt-get purge gpg gpg-agent --yes && apt-get --yes autoremove && \ + apt-get clean ; \ + rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + + +# Post-installation cleanup and setting up OpenVINO environment variables +ENV LIBVA_DRIVER_NAME=iHD +ENV GST_VAAPI_ALL_DRIVERS=1 +ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + +RUN apt-get update && \ + apt-get autoremove -y gfortran && \ + rm -rf /var/lib/apt/lists/* + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} +ENV DEBIAN_FRONTEND=noninteractive + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/ubuntu20/openvino_cg_runtime_2024.1.0.dockerfile b/dockerfiles/ubuntu20/openvino_cg_runtime_2024.1.0.dockerfile new file mode 100644 index 00000000..85b14efd --- /dev/null +++ b/dockerfiles/ubuntu20/openvino_cg_runtime_2024.1.0.dockerfile @@ -0,0 +1,190 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM ubuntu:20.04 AS base + +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# hadolint ignore=DL3008 +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl tzdata ca-certificates && \ + rm -rf /var/lib/apt/lists/* + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.1/linux/l_openvino_toolkit_ubuntu20_2024.1.0.15008.f4afc983258_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + +# install product by copying archive content +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM ubuntu:20.04 AS ov_base + +LABEL description="This is the runtime image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 20.04 LTS" +LABEL vendor="Intel Corporation" + +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + +RUN mkdir /opt/intel + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel/ /opt/intel/ + +WORKDIR /thirdparty + +ARG INSTALL_SOURCES="no" + +ARG DEPS="tzdata \ + curl" + +ARG LGPL_DEPS="" +ARG INSTALL_PACKAGES="-c=python -c=core" + + +# hadolint ignore=DL3008 +RUN apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \ + apt-get install -y --no-install-recommends ${DEPS} && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get reinstall -y ca-certificates && rm -rf /var/lib/apt/lists/* && update-ca-certificates + +# hadolint ignore=DL3008, SC2012 +RUN apt-get update && \ + apt-get install -y --no-install-recommends ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \ + apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + name=(${package//:/ }); \ + grep -l GPL /usr/share/doc/${name[0]}/copyright; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + apt-get source -q --download-only $package; \ + fi \ + done && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + rm /usr/lib/python3.*/lib-dynload/readline.cpython-3*-gnu.so && rm -rf /var/lib/apt/lists/* + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.8 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# Install OpenVINO python API dependency +RUN ${PYTHON_VER} -m pip install --no-cache-dir numpy==1.24.4 + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +# Please use `third-party-programs-docker-runtime.txt` short path to 3d party file if you use the Dockerfile directly from docker_ci/dockerfiles repo folder +COPY third-party-programs-docker-runtime.txt ${INTEL_OPENVINO_DIR}/licensing + +# for CPU + +# for GPU + +RUN apt-get update && apt-get install -y --no-install-recommends gpg gpg-agent && \ + curl https://repositories.intel.com/graphics/intel-graphics.key | gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg && \ + echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu focal-legacy main' | tee /etc/apt/sources.list.d/intel.gpu.focal.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + intel-opencl-icd=22.43.24595.35+i538~20.04 \ + intel-level-zero-gpu=1.3.24595.35+i538~20.04 \ + level-zero=1.8.8+i524~u20.04 \ + ocl-icd-libopencl1 && \ + apt-get purge gpg gpg-agent --yes && apt-get --yes autoremove && \ + apt-get clean ; \ + rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + + +# Post-installation cleanup and setting up OpenVINO environment variables +ENV LIBVA_DRIVER_NAME=iHD +ENV GST_VAAPI_ALL_DRIVERS=1 +ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + +RUN apt-get update && \ + apt-get autoremove -y gfortran && \ + rm -rf /var/lib/apt/lists/* + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} +ENV DEBIAN_FRONTEND=noninteractive + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/ubuntu20/openvino_cg_runtime_2024.2.0.dockerfile b/dockerfiles/ubuntu20/openvino_cg_runtime_2024.2.0.dockerfile new file mode 100644 index 00000000..8603bb8a --- /dev/null +++ b/dockerfiles/ubuntu20/openvino_cg_runtime_2024.2.0.dockerfile @@ -0,0 +1,190 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM ubuntu:20.04 AS base + +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# hadolint ignore=DL3008 +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl tzdata ca-certificates && \ + rm -rf /var/lib/apt/lists/* + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/linux/l_openvino_toolkit_ubuntu20_2024.2.0.15519.5c0f38f83f6_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + +# install product by copying archive content +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM ubuntu:20.04 AS ov_base + +LABEL description="This is the runtime image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 20.04 LTS" +LABEL vendor="Intel Corporation" + +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + +RUN mkdir /opt/intel + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel/ /opt/intel/ + +WORKDIR /thirdparty + +ARG INSTALL_SOURCES="no" + +ARG DEPS="tzdata \ + curl" + +ARG LGPL_DEPS="" +ARG INSTALL_PACKAGES="-c=python -c=core" + + +# hadolint ignore=DL3008 +RUN apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \ + apt-get install -y --no-install-recommends ${DEPS} && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get reinstall -y ca-certificates && rm -rf /var/lib/apt/lists/* && update-ca-certificates + +# hadolint ignore=DL3008, SC2012 +RUN apt-get update && \ + apt-get install -y --no-install-recommends ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \ + apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + name=(${package//:/ }); \ + grep -l GPL /usr/share/doc/${name[0]}/copyright; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + apt-get source -q --download-only $package; \ + fi \ + done && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + rm /usr/lib/python3.*/lib-dynload/readline.cpython-3*-gnu.so && rm -rf /var/lib/apt/lists/* + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + + +ENV HDDL_INSTALL_DIR=/opt/intel/openvino/runtime/3rdparty/hddl +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.8 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# Install OpenVINO python API dependency +RUN ${PYTHON_VER} -m pip install --no-cache-dir numpy==1.24.4 + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +# Please use `third-party-programs-docker-runtime.txt` short path to 3d party file if you use the Dockerfile directly from docker_ci/dockerfiles repo folder +COPY third-party-programs-docker-runtime.txt ${INTEL_OPENVINO_DIR}/licensing + +# for CPU + +# for GPU + +RUN apt-get update && apt-get install -y --no-install-recommends gpg gpg-agent && \ + curl https://repositories.intel.com/graphics/intel-graphics.key | gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg && \ + echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu focal-legacy main' | tee /etc/apt/sources.list.d/intel.gpu.focal.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + intel-opencl-icd=22.43.24595.35+i538~20.04 \ + intel-level-zero-gpu=1.3.24595.35+i538~20.04 \ + level-zero=1.8.8+i524~u20.04 \ + ocl-icd-libopencl1 && \ + apt-get purge gpg gpg-agent --yes && apt-get --yes autoremove && \ + apt-get clean ; \ + rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + + +# Post-installation cleanup and setting up OpenVINO environment variables +ENV LIBVA_DRIVER_NAME=iHD +ENV GST_VAAPI_ALL_DRIVERS=1 +ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + +RUN apt-get update && \ + apt-get autoremove -y gfortran && \ + rm -rf /var/lib/apt/lists/* + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} +ENV DEBIAN_FRONTEND=noninteractive + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/ubuntu22/openvino_cg_dev_2024.1.0.dockerfile b/dockerfiles/ubuntu22/openvino_cg_dev_2024.1.0.dockerfile new file mode 100644 index 00000000..31da8e86 --- /dev/null +++ b/dockerfiles/ubuntu22/openvino_cg_dev_2024.1.0.dockerfile @@ -0,0 +1,360 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM ubuntu:22.04 AS base + +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# hadolint ignore=DL3008 +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl tzdata ca-certificates && \ + rm -rf /var/lib/apt/lists/* + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.1/linux/l_openvino_toolkit_ubuntu22_2024.1.0.15008.f4afc983258_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + +# install product by copying archive content +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM base AS opencv + +LABEL description="This is the dev image for OpenCV building with OpenVINO Runtime backend" +LABEL vendor="Intel Corporation" + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update; \ + apt-get install -y --no-install-recommends \ + git \ + python3-dev \ + python3-pip \ + build-essential \ + cmake \ + ninja-build \ + libgtk-3-dev \ + libpng-dev \ + libjpeg-dev \ + libwebp-dev \ + libtiff5-dev \ + libopenexr-dev \ + libopenblas-dev \ + libx11-dev \ + libavutil-dev \ + libavcodec-dev \ + libavformat-dev \ + libswscale-dev \ + libswresample-dev \ + libtbb2 \ + libssl-dev \ + libva-dev \ + libmfx-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev && \ + rm -rf /var/lib/apt/lists/* + +RUN python3 -m pip install --no-cache-dir numpy==1.23.1 + +ARG OPENCV_BRANCH="377be68d923e40900ac5526242bcf221e3f355e5" # 4.8 with a fix for building tests +WORKDIR /opt/repo +RUN git clone https://github.com/opencv/opencv.git +WORKDIR /opt/repo/opencv +RUN git checkout ${OPENCV_BRANCH} +WORKDIR /opt/repo/opencv/build + +# hadolint ignore=SC1091 +RUN . "${INTEL_OPENVINO_DIR}"/setupvars.sh; \ + cmake -G Ninja \ + -D BUILD_INFO_SKIP_EXTRA_MODULES=ON \ + -D BUILD_EXAMPLES=OFF \ + -D BUILD_JASPER=OFF \ + -D BUILD_JAVA=OFF \ + -D BUILD_JPEG=ON \ + -D BUILD_APPS_LIST=version \ + -D BUILD_opencv_apps=ON \ + -D BUILD_opencv_java=OFF \ + -D BUILD_OPENEXR=OFF \ + -D BUILD_PNG=ON \ + -D BUILD_TBB=OFF \ + -D BUILD_WEBP=OFF \ + -D BUILD_ZLIB=ON \ + -D BUILD_TESTS=ON \ + -D WITH_1394=OFF \ + -D WITH_CUDA=OFF \ + -D WITH_EIGEN=OFF \ + -D WITH_GPHOTO2=OFF \ + -D WITH_GSTREAMER=ON \ + -D OPENCV_GAPI_GSTREAMER=OFF \ + -D WITH_GTK_2_X=OFF \ + -D WITH_IPP=ON \ + -D WITH_JASPER=OFF \ + -D WITH_LAPACK=OFF \ + -D WITH_MATLAB=OFF \ + -D WITH_MFX=ON \ + -D WITH_OPENCLAMDBLAS=OFF \ + -D WITH_OPENCLAMDFFT=OFF \ + -D WITH_OPENEXR=OFF \ + -D WITH_OPENJPEG=OFF \ + -D WITH_QUIRC=OFF \ + -D WITH_TBB=OFF \ + -D WITH_TIFF=OFF \ + -D WITH_VTK=OFF \ + -D WITH_WEBP=OFF \ + -D CMAKE_USE_RELATIVE_PATHS=ON \ + -D CMAKE_SKIP_INSTALL_RPATH=ON \ + -D ENABLE_BUILD_HARDENING=ON \ + -D ENABLE_CONFIG_VERIFICATION=ON \ + -D ENABLE_PRECOMPILED_HEADERS=OFF \ + -D ENABLE_CXX11=ON \ + -D INSTALL_PDB=ON \ + -D INSTALL_TESTS=ON \ + -D INSTALL_C_EXAMPLES=OFF \ + -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D CMAKE_INSTALL_PREFIX=install \ + -D OPENCV_SKIP_PKGCONFIG_GENERATION=ON \ + -D OPENCV_SKIP_PYTHON_LOADER=OFF \ + -D OPENCV_SKIP_CMAKE_ROOT_CONFIG=ON \ + -D OPENCV_GENERATE_SETUPVARS=OFF \ + -D OPENCV_BIN_INSTALL_PATH=bin \ + -D OPENCV_INCLUDE_INSTALL_PATH=include \ + -D OPENCV_LIB_INSTALL_PATH=lib \ + -D OPENCV_CONFIG_INSTALL_PATH=cmake \ + -D OPENCV_3P_LIB_INSTALL_PATH=3rdparty \ + -D OPENCV_DOC_INSTALL_PATH=doc \ + -D OPENCV_OTHER_INSTALL_PATH=etc \ + -D OPENCV_LICENSES_INSTALL_PATH=etc/licenses \ + -D OPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT=ON \ + -D BUILD_opencv_world=OFF \ + -D BUILD_opencv_python2=OFF \ + -D BUILD_opencv_python3=ON \ + -D BUILD_opencv_dnn=OFF \ + -D BUILD_opencv_gapi=OFF \ + -D PYTHON3_PACKAGES_PATH=install/python/python3 \ + -D PYTHON3_LIMITED_API=ON \ + -D HIGHGUI_PLUGIN_LIST=all \ + -D OPENCV_PYTHON_INSTALL_PATH=python \ + -D CPU_BASELINE=SSE4_2 \ + -D OPENCV_IPP_GAUSSIAN_BLUR=ON \ + -D WITH_INF_ENGINE=ON \ + -D InferenceEngine_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D ngraph_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D INF_ENGINE_RELEASE=2022010000 \ + -D VIDEOIO_PLUGIN_LIST=ffmpeg,gstreamer,mfx \ + -D CMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined \ + -D CMAKE_BUILD_TYPE=Release /opt/repo/opencv && \ + ninja -j "$(nproc)" && cmake --install . && \ + rm -Rf install/bin install/etc/samples + +WORKDIR /opt/repo/opencv/build/install +CMD ["/bin/bash"] +# ------------------------------------------------------------------------------------------------- + + +FROM ubuntu:22.04 AS ov_base + +LABEL description="This is the dev image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 22.04 LTS" +LABEL vendor="Intel Corporation" + +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + +RUN mkdir /opt/intel + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel/ /opt/intel/ + +WORKDIR /thirdparty + +ARG INSTALL_SOURCES="no" + +ARG DEPS="tzdata \ + curl" + +ARG LGPL_DEPS="g++ \ + gcc \ + libc6-dev" +ARG INSTALL_PACKAGES="-c=python -c=core -c=dev" + + +# hadolint ignore=DL3008 +RUN apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \ + apt-get install -y --no-install-recommends ${DEPS} && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get reinstall -y ca-certificates && rm -rf /var/lib/apt/lists/* && update-ca-certificates + +# hadolint ignore=DL3008, SC2012 +RUN apt-get update && \ + apt-get install -y --no-install-recommends ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \ + apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + name=(${package//:/ }); \ + grep -l GPL /usr/share/doc/${name[0]}/copyright; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + apt-get source -q --download-only $package; \ + fi \ + done && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + rm /usr/lib/python3.*/lib-dynload/readline.cpython-3*-gnu.so && rm -rf /var/lib/apt/lists/* + +RUN curl -L -O https://github.com/oneapi-src/oneTBB/releases/download/v2021.9.0/oneapi-tbb-2021.9.0-lin.tgz && \ + tar -xzf oneapi-tbb-2021.9.0-lin.tgz&& \ + cp oneapi-tbb-2021.9.0/lib/intel64/gcc4.8/libtbb.so* /opt/intel/openvino/runtime/lib/intel64/ && \ + rm -Rf oneapi-tbb-2021.9.0* + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + + +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.10 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# dev package +WORKDIR ${INTEL_OPENVINO_DIR} +ARG OPENVINO_WHEELS_VERSION=2024.1.0 +ARG OPENVINO_WHEELS_URL +# hadolint ignore=SC2102 +RUN apt-get update && apt-get install -y --no-install-recommends cmake make git && rm -rf /var/lib/apt/lists/* && \ + if [ -z "$OPENVINO_WHEELS_URL" ]; then \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino=="$OPENVINO_WHEELS_VERSION" && \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --extra-index-url https://download.pytorch.org/whl/cpu; \ + else \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" && \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" --extra-index-url https://download.pytorch.org/whl/cpu; \ + fi + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +# Please use `third-party-programs-docker-dev.txt` short path to 3d party file if you use the Dockerfile directly from docker_ci/dockerfiles repo folder +COPY third-party-programs-docker-dev.txt ${INTEL_OPENVINO_DIR}/licensing +COPY third-party-programs-docker-runtime.txt ${INTEL_OPENVINO_DIR}/licensing + +COPY --from=opencv /opt/repo/opencv/build/install ${INTEL_OPENVINO_DIR}/extras/opencv +RUN echo "export OpenCV_DIR=${INTEL_OPENVINO_DIR}/extras/opencv/cmake" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh"; \ + echo "export LD_LIBRARY_PATH=${INTEL_OPENVINO_DIR}/extras/opencv/lib:\$LD_LIBRARY_PATH" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh" + +# Install dependencies for OV::RemoteTensor +RUN apt-get update && apt-get install -y --no-install-recommends opencl-headers ocl-icd-opencl-dev && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + +# build samples into ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin +WORKDIR ${INTEL_OPENVINO_DIR}/samples/cpp +RUN ./build_samples.sh -b /tmp/build -i ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin && \ + rm -Rf /tmp/build + +# add Model API package +# hadolint ignore=DL3013 +RUN git clone https://github.com/openvinotoolkit/open_model_zoo && \ + sed -i '/opencv-python/d' open_model_zoo/demos/common/python/requirements.txt && \ + pip3 --no-cache-dir install open_model_zoo/demos/common/python/ && \ + rm -Rf open_model_zoo && \ + python3 -c "from model_zoo import model_api" + +# for CPU + +# for GPU +RUN apt-get update && \ + apt-get install -y --no-install-recommends ocl-icd-libopencl1 && \ + apt-get clean ; \ + rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* +# hadolint ignore=DL3003 +RUN mkdir /tmp/gpu_deps && cd /tmp/gpu_deps && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.05.25593.11/libigdgmm12_22.3.0_amd64.deb && \ + curl -L -O https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.13700.14/intel-igc-core_1.0.13700.14_amd64.deb && \ + curl -L -O https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.13700.14/intel-igc-opencl_1.0.13700.14_amd64.deb && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.13.26032.30/intel-opencl-icd_23.13.26032.30_amd64.deb && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.13.26032.30/libigdgmm12_22.3.0_amd64.deb && \ + dpkg -i ./*.deb && rm -Rf /tmp/gpu_deps + + +# Post-installation cleanup and setting up OpenVINO environment variables +ENV LIBVA_DRIVER_NAME=iHD +ENV GST_VAAPI_ALL_DRIVERS=1 +ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + +RUN apt-get update && \ + apt-get autoremove -y gfortran && \ + rm -rf /var/lib/apt/lists/* + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} +ENV DEBIAN_FRONTEND=noninteractive + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/ubuntu22/openvino_cg_dev_2024.2.0.dockerfile b/dockerfiles/ubuntu22/openvino_cg_dev_2024.2.0.dockerfile new file mode 100644 index 00000000..53ba9b15 --- /dev/null +++ b/dockerfiles/ubuntu22/openvino_cg_dev_2024.2.0.dockerfile @@ -0,0 +1,361 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM ubuntu:22.04 AS base + +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# hadolint ignore=DL3008 +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl tzdata ca-certificates && \ + rm -rf /var/lib/apt/lists/* + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/linux/l_openvino_toolkit_ubuntu22_2024.2.0.15519.5c0f38f83f6_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + +# install product by copying archive content +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM base AS opencv + +LABEL description="This is the dev image for OpenCV building with OpenVINO Runtime backend" +LABEL vendor="Intel Corporation" + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +# hadolint ignore=DL3008 +RUN apt-get update; \ + apt-get install -y --no-install-recommends \ + git \ + python3-dev \ + python3-pip \ + build-essential \ + cmake \ + ninja-build \ + libgtk-3-dev \ + libpng-dev \ + libjpeg-dev \ + libwebp-dev \ + libtiff5-dev \ + libopenexr-dev \ + libopenblas-dev \ + libx11-dev \ + libavutil-dev \ + libavcodec-dev \ + libavformat-dev \ + libswscale-dev \ + libswresample-dev \ + libtbb2 \ + libssl-dev \ + libva-dev \ + libmfx-dev \ + libgstreamer1.0-dev \ + libgstreamer-plugins-base1.0-dev && \ + rm -rf /var/lib/apt/lists/* + +RUN python3 -m pip install --no-cache-dir numpy==1.23.1 + +# 4.8 with a fix for building tests +ARG OPENCV_BRANCH="377be68d923e40900ac5526242bcf221e3f355e5" +WORKDIR /opt/repo +RUN git clone https://github.com/opencv/opencv.git +WORKDIR /opt/repo/opencv +RUN git checkout ${OPENCV_BRANCH} +WORKDIR /opt/repo/opencv/build + +# hadolint ignore=SC1091 +RUN . "${INTEL_OPENVINO_DIR}"/setupvars.sh; \ + cmake -G Ninja \ + -D BUILD_INFO_SKIP_EXTRA_MODULES=ON \ + -D BUILD_EXAMPLES=OFF \ + -D BUILD_JASPER=OFF \ + -D BUILD_JAVA=OFF \ + -D BUILD_JPEG=ON \ + -D BUILD_APPS_LIST=version \ + -D BUILD_opencv_apps=ON \ + -D BUILD_opencv_java=OFF \ + -D BUILD_OPENEXR=OFF \ + -D BUILD_PNG=ON \ + -D BUILD_TBB=OFF \ + -D BUILD_WEBP=OFF \ + -D BUILD_ZLIB=ON \ + -D BUILD_TESTS=ON \ + -D WITH_1394=OFF \ + -D WITH_CUDA=OFF \ + -D WITH_EIGEN=OFF \ + -D WITH_GPHOTO2=OFF \ + -D WITH_GSTREAMER=ON \ + -D OPENCV_GAPI_GSTREAMER=OFF \ + -D WITH_GTK_2_X=OFF \ + -D WITH_IPP=ON \ + -D WITH_JASPER=OFF \ + -D WITH_LAPACK=OFF \ + -D WITH_MATLAB=OFF \ + -D WITH_MFX=ON \ + -D WITH_OPENCLAMDBLAS=OFF \ + -D WITH_OPENCLAMDFFT=OFF \ + -D WITH_OPENEXR=OFF \ + -D WITH_OPENJPEG=OFF \ + -D WITH_QUIRC=OFF \ + -D WITH_TBB=OFF \ + -D WITH_TIFF=OFF \ + -D WITH_VTK=OFF \ + -D WITH_WEBP=OFF \ + -D CMAKE_USE_RELATIVE_PATHS=ON \ + -D CMAKE_SKIP_INSTALL_RPATH=ON \ + -D ENABLE_BUILD_HARDENING=ON \ + -D ENABLE_CONFIG_VERIFICATION=ON \ + -D ENABLE_PRECOMPILED_HEADERS=OFF \ + -D ENABLE_CXX11=ON \ + -D INSTALL_PDB=ON \ + -D INSTALL_TESTS=ON \ + -D INSTALL_C_EXAMPLES=OFF \ + -D INSTALL_PYTHON_EXAMPLES=OFF \ + -D CMAKE_INSTALL_PREFIX=install \ + -D OPENCV_SKIP_PKGCONFIG_GENERATION=ON \ + -D OPENCV_SKIP_PYTHON_LOADER=OFF \ + -D OPENCV_SKIP_CMAKE_ROOT_CONFIG=ON \ + -D OPENCV_GENERATE_SETUPVARS=OFF \ + -D OPENCV_BIN_INSTALL_PATH=bin \ + -D OPENCV_INCLUDE_INSTALL_PATH=include \ + -D OPENCV_LIB_INSTALL_PATH=lib \ + -D OPENCV_CONFIG_INSTALL_PATH=cmake \ + -D OPENCV_3P_LIB_INSTALL_PATH=3rdparty \ + -D OPENCV_DOC_INSTALL_PATH=doc \ + -D OPENCV_OTHER_INSTALL_PATH=etc \ + -D OPENCV_LICENSES_INSTALL_PATH=etc/licenses \ + -D OPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT=ON \ + -D BUILD_opencv_world=OFF \ + -D BUILD_opencv_python2=OFF \ + -D BUILD_opencv_python3=ON \ + -D BUILD_opencv_dnn=OFF \ + -D BUILD_opencv_gapi=OFF \ + -D PYTHON3_PACKAGES_PATH=install/python/python3 \ + -D PYTHON3_LIMITED_API=ON \ + -D HIGHGUI_PLUGIN_LIST=all \ + -D OPENCV_PYTHON_INSTALL_PATH=python \ + -D CPU_BASELINE=SSE4_2 \ + -D OPENCV_IPP_GAUSSIAN_BLUR=ON \ + -D WITH_INF_ENGINE=ON \ + -D InferenceEngine_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D ngraph_DIR="${INTEL_OPENVINO_DIR}"/runtime/cmake/ \ + -D INF_ENGINE_RELEASE=2022010000 \ + -D VIDEOIO_PLUGIN_LIST=ffmpeg,gstreamer,mfx \ + -D CMAKE_EXE_LINKER_FLAGS=-Wl,--allow-shlib-undefined \ + -D CMAKE_BUILD_TYPE=Release /opt/repo/opencv && \ + ninja -j "$(nproc)" && cmake --install . && \ + rm -Rf install/bin install/etc/samples + +WORKDIR /opt/repo/opencv/build/install +CMD ["/bin/bash"] +# ------------------------------------------------------------------------------------------------- + + +FROM ubuntu:22.04 AS ov_base + +LABEL description="This is the dev image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 22.04 LTS" +LABEL vendor="Intel Corporation" + +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + +RUN mkdir /opt/intel + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel/ /opt/intel/ + +WORKDIR /thirdparty + +ARG INSTALL_SOURCES="no" + +ARG DEPS="tzdata \ + curl" + +ARG LGPL_DEPS="g++ \ + gcc \ + libc6-dev" +ARG INSTALL_PACKAGES="-c=python -c=core -c=dev" + + +# hadolint ignore=DL3008 +RUN apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \ + apt-get install -y --no-install-recommends ${DEPS} && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get reinstall -y ca-certificates && rm -rf /var/lib/apt/lists/* && update-ca-certificates + +# hadolint ignore=DL3008, SC2012 +RUN apt-get update && \ + apt-get install -y --no-install-recommends ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \ + apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + name=(${package//:/ }); \ + grep -l GPL /usr/share/doc/${name[0]}/copyright; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + apt-get source -q --download-only $package; \ + fi \ + done && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + rm /usr/lib/python3.*/lib-dynload/readline.cpython-3*-gnu.so && rm -rf /var/lib/apt/lists/* + +RUN curl -L -O https://github.com/oneapi-src/oneTBB/releases/download/v2021.9.0/oneapi-tbb-2021.9.0-lin.tgz && \ + tar -xzf oneapi-tbb-2021.9.0-lin.tgz&& \ + cp oneapi-tbb-2021.9.0/lib/intel64/gcc4.8/libtbb.so* /opt/intel/openvino/runtime/lib/intel64/ && \ + rm -Rf oneapi-tbb-2021.9.0* + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + + +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool:/opt/intel/openvino/extras/opencv/lib +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.10 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# dev package +WORKDIR ${INTEL_OPENVINO_DIR} +ARG OPENVINO_WHEELS_VERSION=2024.2.0 +ARG OPENVINO_WHEELS_URL +# hadolint ignore=SC2102 +RUN apt-get update && apt-get install -y --no-install-recommends cmake make git && rm -rf /var/lib/apt/lists/* && \ + if [ -z "$OPENVINO_WHEELS_URL" ]; then \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino=="$OPENVINO_WHEELS_VERSION" && \ + ${PYTHON_VER} -m pip install --no-cache-dir openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --extra-index-url https://download.pytorch.org/whl/cpu; \ + else \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" && \ + ${PYTHON_VER} -m pip install --no-cache-dir --pre openvino_dev[caffe,kaldi,mxnet,onnx,pytorch,tensorflow2]=="$OPENVINO_WHEELS_VERSION" --trusted-host=* --find-links "$OPENVINO_WHEELS_URL" --extra-index-url https://download.pytorch.org/whl/cpu; \ + fi + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +# Please use `third-party-programs-docker-dev.txt` short path to 3d party file if you use the Dockerfile directly from docker_ci/dockerfiles repo folder +COPY third-party-programs-docker-dev.txt ${INTEL_OPENVINO_DIR}/licensing +COPY third-party-programs-docker-runtime.txt ${INTEL_OPENVINO_DIR}/licensing + +COPY --from=opencv /opt/repo/opencv/build/install ${INTEL_OPENVINO_DIR}/extras/opencv +RUN echo "export OpenCV_DIR=${INTEL_OPENVINO_DIR}/extras/opencv/cmake" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh"; \ + echo "export LD_LIBRARY_PATH=${INTEL_OPENVINO_DIR}/extras/opencv/lib:\$LD_LIBRARY_PATH" | tee -a "${INTEL_OPENVINO_DIR}/extras/opencv/setupvars.sh" + +# Install dependencies for OV::RemoteTensor +RUN apt-get update && apt-get install -y --no-install-recommends opencl-headers ocl-icd-opencl-dev && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + +# build samples into ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin +WORKDIR ${INTEL_OPENVINO_DIR}/samples/cpp +RUN ./build_samples.sh -b /tmp/build -i ${INTEL_OPENVINO_DIR}/samples/cpp/samples_bin && \ + rm -Rf /tmp/build + +# add Model API package +# hadolint ignore=DL3013 +RUN git clone https://github.com/openvinotoolkit/open_model_zoo && \ + sed -i '/opencv-python/d' open_model_zoo/demos/common/python/requirements.txt && \ + pip3 --no-cache-dir install open_model_zoo/demos/common/python/ && \ + rm -Rf open_model_zoo && \ + python3 -c "from model_zoo import model_api" + +# for CPU + +# for GPU +RUN apt-get update && \ + apt-get install -y --no-install-recommends ocl-icd-libopencl1 && \ + apt-get clean ; \ + rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* +# hadolint ignore=DL3003 +RUN mkdir /tmp/gpu_deps && cd /tmp/gpu_deps && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.05.25593.11/libigdgmm12_22.3.0_amd64.deb && \ + curl -L -O https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.13700.14/intel-igc-core_1.0.13700.14_amd64.deb && \ + curl -L -O https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.13700.14/intel-igc-opencl_1.0.13700.14_amd64.deb && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.13.26032.30/intel-opencl-icd_23.13.26032.30_amd64.deb && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.13.26032.30/libigdgmm12_22.3.0_amd64.deb && \ + dpkg -i ./*.deb && rm -Rf /tmp/gpu_deps + + +# Post-installation cleanup and setting up OpenVINO environment variables +ENV LIBVA_DRIVER_NAME=iHD +ENV GST_VAAPI_ALL_DRIVERS=1 +ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + +RUN apt-get update && \ + apt-get autoremove -y gfortran && \ + rm -rf /var/lib/apt/lists/* + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} +ENV DEBIAN_FRONTEND=noninteractive + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/ubuntu22/openvino_cg_runtime_2024.1.0.dockerfile b/dockerfiles/ubuntu22/openvino_cg_runtime_2024.1.0.dockerfile new file mode 100644 index 00000000..153aa2f0 --- /dev/null +++ b/dockerfiles/ubuntu22/openvino_cg_runtime_2024.1.0.dockerfile @@ -0,0 +1,192 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM ubuntu:22.04 AS base + +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# hadolint ignore=DL3008 +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl tzdata ca-certificates && \ + rm -rf /var/lib/apt/lists/* + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.1/linux/l_openvino_toolkit_ubuntu22_2024.1.0.15008.f4afc983258_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + +# install product by copying archive content +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM ubuntu:22.04 AS ov_base + +LABEL description="This is the runtime image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 22.04 LTS" +LABEL vendor="Intel Corporation" + +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + +RUN mkdir /opt/intel + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel/ /opt/intel/ + +WORKDIR /thirdparty + +ARG INSTALL_SOURCES="no" + +ARG DEPS="tzdata \ + curl" + +ARG LGPL_DEPS="" +ARG INSTALL_PACKAGES="-c=python -c=core" + + +# hadolint ignore=DL3008 +RUN apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \ + apt-get install -y --no-install-recommends ${DEPS} && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get reinstall -y ca-certificates && rm -rf /var/lib/apt/lists/* && update-ca-certificates + +# hadolint ignore=DL3008, SC2012 +RUN apt-get update && \ + apt-get install -y --no-install-recommends ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \ + apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + name=(${package//:/ }); \ + grep -l GPL /usr/share/doc/${name[0]}/copyright; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + apt-get source -q --download-only $package; \ + fi \ + done && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + rm /usr/lib/python3.*/lib-dynload/readline.cpython-3*-gnu.so && rm -rf /var/lib/apt/lists/* + +RUN curl -L -O https://github.com/oneapi-src/oneTBB/releases/download/v2021.9.0/oneapi-tbb-2021.9.0-lin.tgz && \ + tar -xzf oneapi-tbb-2021.9.0-lin.tgz&& \ + cp oneapi-tbb-2021.9.0/lib/intel64/gcc4.8/libtbb.so* /opt/intel/openvino/runtime/lib/intel64/ && \ + rm -Rf oneapi-tbb-2021.9.0* + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + + +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.10 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# Install OpenVINO python API dependency +RUN ${PYTHON_VER} -m pip install --no-cache-dir numpy==1.24.4 + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +# Please use `third-party-programs-docker-runtime.txt` short path to 3d party file if you use the Dockerfile directly from docker_ci/dockerfiles repo folder +COPY third-party-programs-docker-runtime.txt ${INTEL_OPENVINO_DIR}/licensing + +# for CPU + +# for GPU +RUN apt-get update && \ + apt-get install -y --no-install-recommends ocl-icd-libopencl1 && \ + apt-get clean ; \ + rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* +# hadolint ignore=DL3003 +RUN mkdir /tmp/gpu_deps && cd /tmp/gpu_deps && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.05.25593.11/libigdgmm12_22.3.0_amd64.deb && \ + curl -L -O https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.13700.14/intel-igc-core_1.0.13700.14_amd64.deb && \ + curl -L -O https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.13700.14/intel-igc-opencl_1.0.13700.14_amd64.deb && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.13.26032.30/intel-opencl-icd_23.13.26032.30_amd64.deb && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.13.26032.30/libigdgmm12_22.3.0_amd64.deb && \ + dpkg -i ./*.deb && rm -Rf /tmp/gpu_deps + + +# Post-installation cleanup and setting up OpenVINO environment variables +ENV LIBVA_DRIVER_NAME=iHD +ENV GST_VAAPI_ALL_DRIVERS=1 +ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + +RUN apt-get update && \ + apt-get autoremove -y gfortran && \ + rm -rf /var/lib/apt/lists/* + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} +ENV DEBIAN_FRONTEND=noninteractive + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/dockerfiles/ubuntu22/openvino_cg_runtime_2024.2.0.dockerfile b/dockerfiles/ubuntu22/openvino_cg_runtime_2024.2.0.dockerfile new file mode 100644 index 00000000..c6d114b8 --- /dev/null +++ b/dockerfiles/ubuntu22/openvino_cg_runtime_2024.2.0.dockerfile @@ -0,0 +1,192 @@ +# Copyright (C) 2019-2024 Intel Corporation +# SPDX-License-Identifier: Apache-2.0 +FROM ubuntu:22.04 AS base + +# hadolint ignore=DL3002 +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# hadolint ignore=DL3008 +RUN apt-get update && \ + apt-get install -y --no-install-recommends curl tzdata ca-certificates && \ + rm -rf /var/lib/apt/lists/* + + +# get product from URL +ARG package_url=https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/linux/l_openvino_toolkit_ubuntu22_2024.2.0.15519.5c0f38f83f6_x86_64.tgz +ARG TEMP_DIR=/tmp/openvino_installer + +WORKDIR ${TEMP_DIR} +# hadolint ignore=DL3020 +ADD ${package_url} ${TEMP_DIR} + +# install product by copying archive content +ARG TEMP_DIR=/tmp/openvino_installer +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino + +# Creating user openvino and adding it to groups"users" +RUN useradd -ms /bin/bash -G users openvino + +RUN tar -xzf "${TEMP_DIR}"/*.tgz && \ + OV_BUILD="$(find . -maxdepth 1 -type d -name "*openvino*" | grep -oP '(?<=_)\d+.\d+.\d.\d+')" && \ + OV_YEAR="$(echo "$OV_BUILD" | grep -oP '^[^\d]*(\d+)')" && \ + OV_FOLDER="$(find . -maxdepth 1 -type d -name "*openvino*")" && \ + mkdir -p /opt/intel/openvino_"$OV_BUILD"/ && \ + cp -rf "$OV_FOLDER"/* /opt/intel/openvino_"$OV_BUILD"/ && \ + rm -rf "${TEMP_DIR:?}"/"$OV_FOLDER" && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino && \ + ln --symbolic /opt/intel/openvino_"$OV_BUILD"/ /opt/intel/openvino_"$OV_YEAR" && \ + rm -rf "${INTEL_OPENVINO_DIR}/tools/workbench" && rm -rf "${TEMP_DIR}" && \ + chown -R openvino /opt/intel/openvino_"$OV_BUILD" + + +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +RUN rm -rf ${INTEL_OPENVINO_DIR}/.distribution && mkdir ${INTEL_OPENVINO_DIR}/.distribution && \ + touch ${INTEL_OPENVINO_DIR}/.distribution/docker +# ----------------- + + + +FROM ubuntu:22.04 AS ov_base + +LABEL description="This is the runtime image for Intel(R) Distribution of OpenVINO(TM) toolkit on Ubuntu 22.04 LTS" +LABEL vendor="Intel Corporation" + +USER root +WORKDIR / + +SHELL ["/bin/bash", "-xo", "pipefail", "-c"] + +ENV DEBIAN_FRONTEND=noninteractive + +# Creating user openvino and adding it to groups "video" and "users" to use GPU and VPU +RUN sed -ri -e 's@^UMASK[[:space:]]+[[:digit:]]+@UMASK 000@g' /etc/login.defs && \ + grep -E "^UMASK" /etc/login.defs && useradd -ms /bin/bash -G video,users openvino && \ + chown openvino -R /home/openvino + +RUN mkdir /opt/intel + +ENV INTEL_OPENVINO_DIR /opt/intel/openvino + +COPY --from=base /opt/intel/ /opt/intel/ + +WORKDIR /thirdparty + +ARG INSTALL_SOURCES="no" + +ARG DEPS="tzdata \ + curl" + +ARG LGPL_DEPS="" +ARG INSTALL_PACKAGES="-c=python -c=core" + + +# hadolint ignore=DL3008 +RUN apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > base_packages.txt && \ + apt-get install -y --no-install-recommends ${DEPS} && \ + rm -rf /var/lib/apt/lists/* + +RUN apt-get update && apt-get reinstall -y ca-certificates && rm -rf /var/lib/apt/lists/* && update-ca-certificates + +# hadolint ignore=DL3008, SC2012 +RUN apt-get update && \ + apt-get install -y --no-install-recommends ${LGPL_DEPS} && \ + ${INTEL_OPENVINO_DIR}/install_dependencies/install_openvino_dependencies.sh -y ${INSTALL_PACKAGES} && \ + if [ "$INSTALL_SOURCES" = "yes" ]; then \ + sed -Ei 's/# deb-src /deb-src /' /etc/apt/sources.list && \ + apt-get update && \ + dpkg --get-selections | grep -v deinstall | awk '{print $1}' > all_packages.txt && \ + grep -v -f base_packages.txt all_packages.txt | while read line; do \ + package=$(echo $line); \ + name=(${package//:/ }); \ + grep -l GPL /usr/share/doc/${name[0]}/copyright; \ + exit_status=$?; \ + if [ $exit_status -eq 0 ]; then \ + apt-get source -q --download-only $package; \ + fi \ + done && \ + echo "Download source for $(ls | wc -l) third-party packages: $(du -sh)"; fi && \ + rm /usr/lib/python3.*/lib-dynload/readline.cpython-3*-gnu.so && rm -rf /var/lib/apt/lists/* + +RUN curl -L -O https://github.com/oneapi-src/oneTBB/releases/download/v2021.9.0/oneapi-tbb-2021.9.0-lin.tgz && \ + tar -xzf oneapi-tbb-2021.9.0-lin.tgz&& \ + cp oneapi-tbb-2021.9.0/lib/intel64/gcc4.8/libtbb.so* /opt/intel/openvino/runtime/lib/intel64/ && \ + rm -Rf oneapi-tbb-2021.9.0* + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +RUN if [ "$INSTALL_SOURCES" = "no" ]; then \ + echo "This image doesn't contain source for 3d party components under LGPL/GPL licenses. They are stored in https://storage.openvinotoolkit.org/repositories/openvino/ci_dependencies/container_gpl_sources/." > DockerImage_readme.txt ; \ + fi + + +ENV InferenceEngine_DIR=/opt/intel/openvino/runtime/cmake +ENV LD_LIBRARY_PATH=/opt/intel/openvino/runtime/3rdparty/hddl/lib:/opt/intel/openvino/runtime/3rdparty/tbb/lib:/opt/intel/openvino/runtime/lib/intel64:/opt/intel/openvino/tools/compile_tool +ENV OpenCV_DIR=/opt/intel/openvino/extras/opencv/cmake +ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PYTHONPATH=/opt/intel/openvino/python:/opt/intel/openvino/python/python3:/opt/intel/openvino/extras/opencv/python +ENV TBB_DIR=/opt/intel/openvino/runtime/3rdparty/tbb/cmake +ENV ngraph_DIR=/opt/intel/openvino/runtime/cmake +ENV OpenVINO_DIR=/opt/intel/openvino/runtime/cmake +ENV INTEL_OPENVINO_DIR=/opt/intel/openvino +ENV PKG_CONFIG_PATH=/opt/intel/openvino/runtime/lib/intel64/pkgconfig + +# setup Python +ENV PYTHON_VER python3.10 + +RUN ${PYTHON_VER} -m pip install --upgrade pip + +# Install OpenVINO python API dependency +RUN ${PYTHON_VER} -m pip install --no-cache-dir numpy==1.24.4 + +WORKDIR ${INTEL_OPENVINO_DIR}/licensing +# Please use `third-party-programs-docker-runtime.txt` short path to 3d party file if you use the Dockerfile directly from docker_ci/dockerfiles repo folder +COPY third-party-programs-docker-runtime.txt ${INTEL_OPENVINO_DIR}/licensing + +# for CPU + +# for GPU +RUN apt-get update && \ + apt-get install -y --no-install-recommends ocl-icd-libopencl1 && \ + apt-get clean ; \ + rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* +# hadolint ignore=DL3003 +RUN mkdir /tmp/gpu_deps && cd /tmp/gpu_deps && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.05.25593.11/libigdgmm12_22.3.0_amd64.deb && \ + curl -L -O https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.13700.14/intel-igc-core_1.0.13700.14_amd64.deb && \ + curl -L -O https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.13700.14/intel-igc-opencl_1.0.13700.14_amd64.deb && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.13.26032.30/intel-opencl-icd_23.13.26032.30_amd64.deb && \ + curl -L -O https://github.com/intel/compute-runtime/releases/download/23.13.26032.30/libigdgmm12_22.3.0_amd64.deb && \ + dpkg -i ./*.deb && rm -Rf /tmp/gpu_deps + + +# Post-installation cleanup and setting up OpenVINO environment variables +ENV LIBVA_DRIVER_NAME=iHD +ENV GST_VAAPI_ALL_DRIVERS=1 +ENV LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + +RUN apt-get update && \ + apt-get autoremove -y gfortran && \ + rm -rf /var/lib/apt/lists/* + +USER openvino +WORKDIR ${INTEL_OPENVINO_DIR} +ENV DEBIAN_FRONTEND=noninteractive + +CMD ["/bin/bash"] + +# Setup custom layers below diff --git a/utils/loader.py b/utils/loader.py index 02ad7660..96d9778b 100644 --- a/utils/loader.py +++ b/utils/loader.py @@ -493,6 +493,26 @@ 'linux/l_openvino_toolkit_rhel8_2024.1.0.15008.f4afc983258_x86_64.tgz', }, }, + '2024.2.0': { + 'ubuntu20': { + 'dev': 'https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/' + 'linux/l_openvino_toolkit_ubuntu20_2024.2.0.15519.5c0f38f83f6_x86_64.tgz', + 'runtime': 'https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/' + 'linux/l_openvino_toolkit_ubuntu20_2024.2.0.15519.5c0f38f83f6_x86_64.tgz', + }, + 'ubuntu22': { + 'dev': 'https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/' + 'linux/l_openvino_toolkit_ubuntu22_2024.2.0.15519.5c0f38f83f6_x86_64.tgz', + 'runtime': 'https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/' + 'linux/l_openvino_toolkit_ubuntu22_2024.2.0.15519.5c0f38f83f6_x86_64.tgz', + }, + 'rhel8': { + 'dev': 'https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/' + 'linux/l_openvino_toolkit_rhel8_2024.2.0.15519.5c0f38f83f6_x86_64.tgz', + 'runtime': 'https://storage.openvinotoolkit.org/repositories/openvino/packages/2024.2/' + 'linux/l_openvino_toolkit_rhel8_2024.2.0.15519.5c0f38f83f6_x86_64.tgz', + }, + }, } DIVE_URL = { 'windows': 'https://github.com/wagoodman/dive/releases/download/v0.9.2/dive_0.9.2_windows_amd64.zip',