diff --git a/.dockerignore b/.dockerignore index ae6f2780700a1..3610b792ef830 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,4 @@ .git .gitignore .gitattributes -docs diff --git a/dockerfiles/Dockerfile.cuda b/dockerfiles/Dockerfile.cuda index 0d8f076c08388..721fad94ae3d7 100644 --- a/dockerfiles/Dockerfile.cuda +++ b/dockerfiles/Dockerfile.cuda @@ -6,27 +6,19 @@ # nVidia cuda 10.2 Base Image FROM nvidia/cuda:10.2-cudnn8-devel -MAINTAINER Vinitra Swamy "viswamy@microsoft.com" +MAINTAINER Changming Sun "chasun@microsoft.com" +ADD . /code -ARG ONNXRUNTIME_REPO=https://github.com/Microsoft/onnxruntime -ARG ONNXRUNTIME_BRANCH=master - -RUN apt-get update &&\ - apt-get install -y sudo git bash unattended-upgrades +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y --no-install-recommends python3-dev ca-certificates g++ python3-numpy gcc make git python3-setuptools python3-wheel python3-pip unattended-upgrades RUN unattended-upgrade -WORKDIR /code -ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:/code/cmake-3.14.3-Linux-x86_64/bin:/opt/miniconda/bin:${PATH} -ENV LD_LIBRARY_PATH /opt/miniconda/lib:$LD_LIBRARY_PATH +ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} +RUN apt-get update && apt-get install -y --no-install-recommends python3-dev ca-certificates g++ python3-numpy gcc make git python3-setuptools python3-wheel python3-pip aria2 && aria2c -q -d /tmp -o cmake-3.18.2-Linux-x86_64.tar.gz https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2-Linux-x86_64.tar.gz && tar -zxf /tmp/cmake-3.18.2-Linux-x86_64.tar.gz --strip=1 -C /usr + +RUN cd /code && /bin/bash ./build.sh --skip_submodule_sync --cuda_home /usr/local/cuda --cudnn_home /usr/lib/x86_64-linux-gnu/ --use_cuda --config Release --build_wheel --update --build --parallel --cmake_extra_defines ONNXRUNTIME_VERSION=$(cat ./VERSION_NUMBER) 'CMAKE_CUDA_ARCHITECTURES=30;37;50;52;60;70' -# Prepare onnxruntime repository & build onnxruntime with CUDA -RUN git clone --single-branch --branch ${ONNXRUNTIME_BRANCH} --recursive ${ONNXRUNTIME_REPO} onnxruntime &&\ - /bin/sh onnxruntime/dockerfiles/scripts/install_common_deps.sh &&\ - cp onnxruntime/docs/Privacy.md /code/Privacy.md &&\ - cp onnxruntime/ThirdPartyNotices.txt /code/ThirdPartyNotices.txt &&\ - cp onnxruntime/dockerfiles/LICENSE-IMAGE.txt /code/LICENSE-IMAGE.txt &&\ - cd onnxruntime &&\ - /bin/sh ./build.sh --cuda_home /usr/local/cuda --cudnn_home /usr/lib/x86_64-linux-gnu/ --use_cuda --config Release --build_wheel --update --build --cmake_extra_defines ONNXRUNTIME_VERSION=$(cat ./VERSION_NUMBER) &&\ - pip install /code/onnxruntime/build/Linux/Release/dist/*.whl &&\ - cd .. &&\ - rm -rf onnxruntime cmake-3.14.3-Linux-x86_64 +FROM nvidia/cuda:10.2-cudnn8-runtime +COPY --from=0 /code/build/Linux/Release/dist /root +COPY --from=0 /code/dockerfiles/LICENSE-IMAGE.txt /code/LICENSE-IMAGE.txt +RUN apt-get update && apt-get install -y --no-install-recommends libstdc++6 ca-certificates python3-setuptools python3-wheel python3-pip && python3 -m pip install /root/*.whl && rm -rf /root/*.whl \ No newline at end of file diff --git a/dockerfiles/Dockerfile.source b/dockerfiles/Dockerfile.source index 9967b5a96f3a3..e63754760160e 100644 --- a/dockerfiles/Dockerfile.source +++ b/dockerfiles/Dockerfile.source @@ -4,24 +4,17 @@ # -------------------------------------------------------------- # Dockerfile to run ONNXRuntime with source build for CPU -# Ubuntu 16.04 Base Image -FROM ubuntu:16.04 -MAINTAINER Vinitra Swamy "viswamy@microsoft.com" +FROM ubuntu:18.04 +MAINTAINER Changming Sun "chasun@microsoft.com" +ADD . /code -ARG ONNXRUNTIME_REPO=https://github.com/Microsoft/onnxruntime -ARG ONNXRUNTIME_SERVER_BRANCH=master - -RUN apt-get update &&\ - apt-get install -y sudo git bash - -WORKDIR /code -ENV PATH /opt/miniconda/bin:/code/cmake-3.14.3-Linux-x86_64/bin:${PATH} +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y --no-install-recommends python3-dev ca-certificates g++ python3-numpy gcc make git python3-setuptools python3-wheel python3-pip aria2 && aria2c -q -d /tmp -o cmake-3.18.2-Linux-x86_64.tar.gz https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2-Linux-x86_64.tar.gz && tar -zxf /tmp/cmake-3.18.2-Linux-x86_64.tar.gz --strip=1 -C /usr # Prepare onnxruntime repository & build onnxruntime -RUN git clone --single-branch --branch ${ONNXRUNTIME_SERVER_BRANCH} --recursive ${ONNXRUNTIME_REPO} onnxruntime &&\ - /bin/sh onnxruntime/dockerfiles/scripts/install_common_deps.sh &&\ - cd onnxruntime &&\ - /bin/sh ./build.sh --use_openmp --config Release --build_wheel --update --build --parallel --cmake_extra_defines ONNXRUNTIME_VERSION=$(cat ./VERSION_NUMBER) &&\ - pip install /code/onnxruntime/build/Linux/Release/dist/*.whl &&\ - cd .. &&\ - rm -rf onnxruntime cmake-3.14.3-Linux-x86_64 +RUN cd /code && /bin/bash ./build.sh --skip_submodule_sync --use_openmp --config Release --build_wheel --update --build --parallel --cmake_extra_defines ONNXRUNTIME_VERSION=$(cat ./VERSION_NUMBER) + +FROM ubuntu:18.04 +COPY --from=0 /code/build/Linux/Release/dist /root +COPY --from=0 /code/dockerfiles/LICENSE-IMAGE.txt /code/LICENSE-IMAGE.txt +RUN apt-get update && apt-get install -y --no-install-recommends libstdc++6 libgomp1 ca-certificates python3-setuptools python3-wheel python3-pip && python3 -m pip install /root/*.whl && rm -rf /root/*.whl \ No newline at end of file diff --git a/dockerfiles/README.md b/dockerfiles/README.md index 3e462a92b0bf2..b7c62e640a375 100644 --- a/dockerfiles/README.md +++ b/dockerfiles/README.md @@ -41,7 +41,7 @@ Use `docker pull` with any of the images and tags below to pull an image and try 1. Build the docker image from the Dockerfile in this repository. ``` - docker build -t onnxruntime-source -f Dockerfile.source . + docker build -t onnxruntime-source -f Dockerfile.source .. ``` 2. Run the Docker image @@ -51,11 +51,11 @@ Use `docker pull` with any of the images and tags below to pull an image and try ``` ## CUDA -**Ubuntu 16.04, CUDA 10.0, CuDNN 7** +**Ubuntu 18.04, CUDA 10.2, CuDNN 8** 1. Build the docker image from the Dockerfile in this repository. ``` - docker build -t onnxruntime-cuda -f Dockerfile.cuda . + docker build -t onnxruntime-cuda -f Dockerfile.cuda .. ``` 2. Run the Docker image