diff --git a/tools/ci_build/github/linux/copy_strip_binary.sh b/tools/ci_build/github/linux/copy_strip_binary.sh old mode 100644 new mode 100755 diff --git a/tools/ci_build/github/linux/docker/Dockerfile.ubuntu_tensorrt b/tools/ci_build/github/linux/docker/Dockerfile.ubuntu_tensorrt index b441a11de6..8395df1e27 100644 --- a/tools/ci_build/github/linux/docker/Dockerfile.ubuntu_tensorrt +++ b/tools/ci_build/github/linux/docker/Dockerfile.ubuntu_tensorrt @@ -5,10 +5,9 @@ FROM nvcr.io/nvidia/tensorrt:19.09-py3 ARG PYTHON_VERSION=3.6 -ARG OS_VERSION=18.04 ADD scripts /tmp/scripts -RUN /tmp/scripts/install_ubuntu.sh -p $PYTHON_VERSION -o ${OS_VERSION} && /tmp/scripts/install_deps.sh -p $PYTHON_VERSION && rm -rf /tmp/scripts \ +RUN /tmp/scripts/install_ubuntu.sh -p $PYTHON_VERSION && /tmp/scripts/install_deps.sh -p $PYTHON_VERSION && rm -rf /tmp/scripts \ && rm /usr/local/bin/cmake && rm /usr/local/bin/ctest && rm -r /usr/local/share/cmake-3.12 WORKDIR /root diff --git a/tools/ci_build/github/linux/docker/scripts/install_ubuntu.sh b/tools/ci_build/github/linux/docker/scripts/install_ubuntu.sh index 7703fe0356..c034d51ea0 100755 --- a/tools/ci_build/github/linux/docker/scripts/install_ubuntu.sh +++ b/tools/ci_build/github/linux/docker/scripts/install_ubuntu.sh @@ -1,26 +1,28 @@ #!/bin/bash set -e -while getopts p:d:o: parameter_Option +while getopts p:d: parameter_Option do case "${parameter_Option}" in p) PYTHON_VER=${OPTARG};; d) DEVICE_TYPE=${OPTARG};; -o) OS_VERSION=${OPTARG};; esac done PYTHON_VER=${PYTHON_VER:=3.5} # Some Edge devices only have limited disk space, use this option to exclude some package DEVICE_TYPE=${DEVICE_TYPE:=Normal} -OS_VERSION=${OS_VERSION:=16.04} + +apt-get update && apt-get install -y software-properties-common lsb-release + + +OS_VERSION=$(lsb_release -r -s) DEBIAN_FRONTEND=noninteractive SYS_LONG_BIT=$(getconf LONG_BIT) -apt-get update && apt-get install -y software-properties-common -add-apt-repository ppa:deadsnakes/ppa -if [ $OS_VERSION = "16.04" ]; then +#see: https://docs.microsoft.com/en-us/dotnet/core/linux-prerequisites?tabs=netcore21 +if [ "$OS_VERSION" = "16.04" ]; then PACKAGE_LIST="autotools-dev \ automake \ build-essential \ @@ -53,7 +55,6 @@ if [ $OS_VERSION = "16.04" ]; then python3-setuptools python3-numpy python3-wheel python python3-pip python3-pytest \ libprotobuf-dev libprotobuf9v5 protobuf-compiler" else # ubuntu18.04 - add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" PACKAGE_LIST="autotools-dev \ automake \ build-essential \ @@ -75,7 +76,7 @@ else # ubuntu18.04 libcurl4 \ libssl1.0.0 \ libkrb5-3 \ - libicu55 \ + libicu60 \ libtinfo-dev \ libtool \ aria2 \ @@ -96,18 +97,18 @@ locale-gen en_US.UTF-8 update-locale LANG=en_US.UTF-8 echo "Installing dotnet-sdk" -if [ $SYS_LONG_BIT = "64" ]; then - OS_VER=`lsb_release -r -s` +if [ "$SYS_LONG_BIT" = "64" ]; then mkdir -p /tmp/dotnet - aria2c -q -d /tmp/dotnet https://packages.microsoft.com/config/ubuntu/${OS_VER}/packages-microsoft-prod.deb + aria2c -q -d /tmp/dotnet https://packages.microsoft.com/config/ubuntu/${OS_VERSION}/packages-microsoft-prod.deb dpkg -i /tmp/dotnet/packages-microsoft-prod.deb apt-get update apt-get install -y dotnet-sdk-2.2 rm -rf /tmp/dotnet fi -if [ $OS_VERSION = "16.04" ]; then - if [ $PYTHON_VER != "3.5" ]; then +if [ "$OS_VERSION" = "16.04" ]; then + if [ "$PYTHON_VER" != "3.5" ]; then + add-apt-repository -y ppa:deadsnakes/ppa apt-get install -y --no-install-recommends \ python${PYTHON_VER} \ python${PYTHON_VER}-dev @@ -119,14 +120,9 @@ if [ $OS_VERSION = "16.04" ]; then /usr/bin/python${PYTHON_VER} -m pip install --upgrade --force-reinstall pip==19.0.3 fi - rm -rf /var/lib/apt/lists/* - - if [ $DEVICE_TYPE = "Normal" ]; then - aria2c -q -d /tmp -o llvm.tar.xz http://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz - tar --strip 1 -Jxf /tmp/llvm.tar.xz -C /usr - fi else # ubuntu18.04 - if [ $PYTHON_VER != "3.6" ]; then + if [ "$PYTHON_VER" != "3.6" ]; then + add-apt-repository -y ppa:deadsnakes/ppa apt-get install -y --no-install-recommends \ python${PYTHON_VER} \ python${PYTHON_VER}-dev @@ -137,11 +133,14 @@ else # ubuntu18.04 #put at /usr/local/. Then there will be two pips. /usr/bin/python${PYTHON_VER} -m pip install --upgrade --force-reinstall pip==19.0.3 fi +fi - rm -rf /var/lib/apt/lists/* +rm -rf /var/lib/apt/lists/* - if [ $DEVICE_TYPE = "Normal" ]; then - aria2c -q -d /tmp -o llvm.tar.xz http://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz - tar --strip 1 -Jxf /tmp/llvm.tar.xz -C /usr +if [ "$SYS_LONG_BIT" = "64" ]; then + if [ "$DEVICE_TYPE" = "Normal" ]; then + aria2c -q -d /tmp -o llvm.tar.xz http://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-${OS_VERSION}.tar.xz + tar --strip 1 -Jxf /tmp/llvm.tar.xz -C /usr fi fi + diff --git a/tools/ci_build/github/linux/run_dockerbuild.sh b/tools/ci_build/github/linux/run_dockerbuild.sh index e00325c5bf..92dc2c0981 100755 --- a/tools/ci_build/github/linux/run_dockerbuild.sh +++ b/tools/ci_build/github/linux/run_dockerbuild.sh @@ -49,11 +49,6 @@ elif [ $BUILD_OS = "centos7" ]; then DOCKER_FILE=Dockerfile.centos docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg PYTHON_VERSION=${PYTHON_VER} -f $DOCKER_FILE . else - if [ $BUILD_OS = "ubuntu16.04" ]; then - OS_VER=16.04 - else - OS_VER=18.04 - fi if [ $BUILD_DEVICE = "gpu" ]; then IMAGE="$BUILD_OS-$CUDA_VER" DOCKER_FILE=Dockerfile.ubuntu_gpu @@ -65,18 +60,18 @@ else # TensorRT container release 19.09 IMAGE="$BUILD_OS-cuda10.1-cudnn7.6-tensorrt6.0" DOCKER_FILE=Dockerfile.ubuntu_tensorrt - docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg OS_VERSION=${OS_VER} --build-arg PYTHON_VERSION=${PYTHON_VER} -f $DOCKER_FILE . + docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg PYTHON_VERSION=${PYTHON_VER} -f $DOCKER_FILE . elif [ $BUILD_DEVICE = "openvino" ]; then IMAGE="$BUILD_OS-openvino" DOCKER_FILE=Dockerfile.ubuntu_openvino - docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg OS_VERSION=${OS_VER} --build-arg PYTHON_VERSION=${PYTHON_VER} --build-arg OPENVINO_VERSION=${OPENVINO_VERSION} -f $DOCKER_FILE . + docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg PYTHON_VERSION=${PYTHON_VER} --build-arg OPENVINO_VERSION=${OPENVINO_VERSION} -f $DOCKER_FILE . else IMAGE="$BUILD_OS" if [ $BUILD_ARCH = "x86" ]; then IMAGE="$IMAGE.x86" - docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg OS_VERSION=${OS_VER} --build-arg PYTHON_VERSION=${PYTHON_VER} -f Dockerfile.ubuntu_x86 . + docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg PYTHON_VERSION=${PYTHON_VER} -f Dockerfile.ubuntu_x86 . else - docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg OS_VERSION=${OS_VER} --build-arg PYTHON_VERSION=${PYTHON_VER} -f Dockerfile.ubuntu . + docker build -t "onnxruntime-$IMAGE" --build-arg BUILD_USER=onnxruntimedev --build-arg BUILD_UID=$(id -u) --build-arg PYTHON_VERSION=${PYTHON_VER} -f Dockerfile.ubuntu . fi fi fi