You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Dockerfile 3.8 kB

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