1FROM nvidia/cuda:11.6.2-cudnn8-devel-ubuntu18.04 2 3MAINTAINER MindSpore Authors 4 5# Set env 6ENV PYTHON_ROOT_PATH /usr/local/python-3.7.5 7ENV CMAKE_ROOT_PATH /usr/local/cmake-3.14.1 8ENV OMPI_ROOT_PATH /usr/local/openmpi-4.0.3 9ENV CUDA_PATH /usr/local/cuda 10ENV CUDNN_PATH /usr/lib/x86_64-linux-gnu 11ENV PATH ${PYTHON_ROOT_PATH}/bin:${OMPI_ROOT_PATH}/bin:${CMAKE_ROOT_PATH}/bin:${CUDA_PATH}/bin:/usr/local/bin:$PATH 12ENV LD_LIBRARY_PATH ${OMPI_ROOT_PATH}/lib:${PYTHON_ROOT_PATH}:${CUDA_PATH}/lib64:${CUDNN_PATH}:$LD_LIBRARY_PATH 13 14# install basic tools 15RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ 16 DEBIAN_FRONTEND=noninteractive apt install -y \ 17 vim \ 18 wget \ 19 curl \ 20 xz-utils \ 21 net-tools \ 22 openssh-client \ 23 git \ 24 ntpdate \ 25 tzdata \ 26 tcl \ 27 sudo \ 28 bash-completion 29 30# Install compile tools 31RUN DEBIAN_FRONTEND=noninteractive apt install -y \ 32 gcc \ 33 g++ \ 34 zlibc \ 35 make \ 36 libgmp-dev \ 37 patch \ 38 autoconf \ 39 libtool \ 40 automake \ 41 flex \ 42 libjpeg8-dev 43 44# Install the rest dependent tools 45RUN DEBIAN_FRONTEND=noninteractive apt install -y \ 46 libnuma-dev 47 48# Set bash 49RUN echo "dash dash/sh boolean false" | debconf-set-selections 50RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash 51 52# Install python (v3.7.5) 53RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \ 54 libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \ 55 && rm -rf /var/lib/apt/lists/* \ 56 && cd /tmp \ 57 && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \ 58 && tar -xvf v3.7.5.tar.gz \ 59 && cd /tmp/cpython-3.7.5 \ 60 && mkdir -p ${PYTHON_ROOT_PATH} \ 61 && ./configure --prefix=${PYTHON_ROOT_PATH} --enable-shared \ 62 && make -j4 \ 63 && make install -j4 \ 64 && rm -f /usr/local/bin/python \ 65 && rm -f /usr/local/bin/pip \ 66 && rm -f /usr/local/lib/libpython3.7m.so.1.0 \ 67 && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \ 68 && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \ 69 && ln -s ${PYTHON_ROOT_PATH}/lib/libpython3.7m.so.1.0 /usr/local/lib/libpython3.7m.so.1.0 \ 70 && ldconfig \ 71 && rm -rf /tmp/cpython-3.7.5 \ 72 && rm -f /tmp/v3.7.5.tar.gz 73 74# Set pip source 75RUN mkdir -pv /root/.pip \ 76 && echo "[global]" > /root/.pip/pip.conf \ 77 && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \ 78 && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf \ 79 && pip install --upgrade pip \ 80 && pip install --no-cache-dir wheel \ 81 && pip cache purge 82 83# Install cmake (v3.14.1) 84RUN cd /tmp \ 85 && wget https://github.com/Kitware/CMake/releases/download/v3.14.1/cmake-3.14.1-Linux-x86_64.sh \ 86 && mkdir -p ${CMAKE_ROOT_PATH} \ 87 && bash ./cmake-3.14.1-Linux-x86_64.sh --prefix=${CMAKE_ROOT_PATH} --exclude-subdir --skip-license \ 88 && rm -f /tmp/cmake-3.14.1-Linux-x86_64.sh 89 90# Install openmpi (v4.0.3) 91RUN cd /tmp \ 92 && wget https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.3.tar.gz \ 93 && tar -xvf openmpi-4.0.3.tar.gz \ 94 && cd /tmp/openmpi-4.0.3 \ 95 && mkdir -p ${OMPI_ROOT_PATH} \ 96 && ./configure --prefix=${OMPI_ROOT_PATH} \ 97 && make -j4 \ 98 && make install -j4 \ 99 && rm -rf /tmp/openmpi-4.0.3 \ 100 && rm -f /tmp/openmpi-4.0.3.tar.gz 101 102# Install nodejs 103RUN cd /tmp \ 104 && wget https://mirrors.huaweicloud.com/nodejs/v12.18.4/node-v12.18.4-linux-x64.tar.gz \ 105 && tar -zxf node-v12.18.4-linux-x64.tar.gz \ 106 && rm -rf /usr/local/nodejs \ 107 && mkdir -p /usr/local/nodejs \ 108 && mv /tmp/node-v12.18.4-linux-x64 /usr/local/nodejs/ \ 109 && chmod 755 -R /usr/local/nodejs \ 110 && ln -sf /usr/local/nodejs/node-v12.18.4-linux-x64/bin/node /usr/bin/node \ 111 && ln -sf /usr/local/nodejs/node-v12.18.4-linux-x64/bin/npm /usr/bin/npm \ 112 && npm config set registry https://registry.npm.taobao.org/ \ 113 && rm -f /tmp/node-v12.18.4-linux-x64.tar.gz