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 2.8 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04
  2. MAINTAINER leonwanghui <leon.wanghui@huawei.com>
  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-3.1.5
  7. ENV PATH ${PYTHON_ROOT_PATH}/bin:${CMAKE_ROOT_PATH}/bin:${OMPI_ROOT_PATH}/bin:/usr/local/bin:$PATH
  8. # Install base tools
  9. RUN apt update \
  10. && DEBIAN_FRONTEND=noninteractive apt install -y \
  11. vim \
  12. wget \
  13. curl \
  14. xz-utils \
  15. net-tools \
  16. openssh-client \
  17. git \
  18. ntpdate \
  19. tzdata \
  20. tcl \
  21. sudo \
  22. bash-completion
  23. # Install compile tools
  24. RUN DEBIAN_FRONTEND=noninteractive apt install -y \
  25. gcc \
  26. g++ \
  27. zlibc \
  28. make \
  29. libgmp-dev \
  30. patch \
  31. autoconf \
  32. libtool \
  33. automake \
  34. flex \
  35. libnccl2=2.4.8-1+cuda10.1 \
  36. libnccl-dev=2.4.8-1+cuda10.1
  37. # Set bash
  38. RUN echo "dash dash/sh boolean false" | debconf-set-selections
  39. RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash
  40. # Install python (v3.7.5)
  41. RUN apt install -y libffi-dev libssl-dev zlib1g-dev libbz2-dev libncurses5-dev \
  42. libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libsqlite3-dev \
  43. && cd /tmp \
  44. && wget https://github.com/python/cpython/archive/v3.7.5.tar.gz \
  45. && tar -xvf v3.7.5.tar.gz \
  46. && cd /tmp/cpython-3.7.5 \
  47. && mkdir -p ${PYTHON_ROOT_PATH} \
  48. && ./configure --prefix=${PYTHON_ROOT_PATH} \
  49. && make -j4 \
  50. && make install -j4 \
  51. && rm -f /usr/local/bin/python \
  52. && rm -f /usr/local/bin/pip \
  53. && ln -s ${PYTHON_ROOT_PATH}/bin/python3.7 /usr/local/bin/python \
  54. && ln -s ${PYTHON_ROOT_PATH}/bin/pip3.7 /usr/local/bin/pip \
  55. && rm -rf /tmp/cpython-3.7.5 \
  56. && rm -f /tmp/v3.7.5.tar.gz
  57. # Set pip source
  58. RUN mkdir -pv /root/.pip \
  59. && echo "[global]" > /root/.pip/pip.conf \
  60. && echo "trusted-host=mirrors.aliyun.com" >> /root/.pip/pip.conf \
  61. && echo "index-url=http://mirrors.aliyun.com/pypi/simple/" >> /root/.pip/pip.conf
  62. # Install pip package
  63. RUN pip install --no-cache-dir \
  64. numpy \
  65. wheel \
  66. nose \
  67. pytest \
  68. pytest-xdist
  69. # Install cmake (v3.14.1)
  70. RUN cd /tmp \
  71. && wget https://github.com/Kitware/CMake/releases/download/v3.14.1/cmake-3.14.1-Linux-x86_64.sh \
  72. && mkdir -p ${CMAKE_ROOT_PATH} \
  73. && bash ./cmake-3.14.1-Linux-x86_64.sh --prefix=${CMAKE_ROOT_PATH} --exclude-subdir --skip-license \
  74. && rm -f /tmp/cmake-3.14.1-Linux-x86_64.sh
  75. # Install openmpi (v3.1.5)
  76. RUN cd /tmp \
  77. && wget https://download.open-mpi.org/release/open-mpi/v3.1/openmpi-3.1.5.tar.gz \
  78. && tar -xvf openmpi-3.1.5.tar.gz \
  79. && cd /tmp/openmpi-3.1.5 \
  80. && mkdir -p ${OMPI_ROOT_PATH} \
  81. && ./configure --prefix=${OMPI_ROOT_PATH} \
  82. && make -j4 \
  83. && make install -j4 \
  84. && rm -rf /tmp/openmpi-3.1.5 \
  85. && rm -f /tmp/openmpi-3.1.5.tar.gz