FROM nvidia/cuda:11.1.1-cudnn8-devel-ubuntu18.04 # For the convenience for users in China mainland COPY docker/apt-sources.list /etc/apt/sources.list # Install some basic utilities RUN rm /etc/apt/sources.list.d/nvidia-ml.list \ && rm /etc/apt/sources.list.d/cuda.list \ && apt-get update && apt-get install -y \ curl \ ca-certificates \ sudo \ git \ bzip2 \ libx11-6 \ gcc \ g++ \ libusb-1.0-0 \ cmake \ libssl-dev \ && DEBIAN_FRONTEND=noninteractive apt-get install -y python3-opencv \ && rm -rf /var/lib/apt/lists/* # Create a working directory RUN mkdir /app WORKDIR /app # Create a non-root user and switch to it RUN adduser --disabled-password --gecos '' --shell /bin/bash user \ && chown -R user:user /app RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user USER user # All users can use /home/user as their home directory ENV HOME=/home/user RUN chmod 777 /home/user # Install Miniconda and Python 3.8 ENV CONDA_AUTO_UPDATE_CONDA=false ENV PATH=/home/user/miniconda/bin:$PATH RUN curl -sLo ~/miniconda.sh https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.8.3-Linux-x86_64.sh \ && chmod +x ~/miniconda.sh \ && ~/miniconda.sh -b -p ~/miniconda \ && rm ~/miniconda.sh \ && conda install -y python==3.8.3 \ && conda clean -ya COPY --chown=user docker/.condarc /home/user/.condarc # CUDA 11.1-specific steps RUN conda install -y -c conda-forge cudatoolkit=11.1.1 \ && conda install -y -c pytorch \ "pytorch=1.8.1=py3.8_cuda11.1_cudnn8.0.5_0" \ "torchvision=0.9.1=py38_cu111" \ && conda clean -ya # Alter sources for the convenience of users located in China mainland. RUN pip config set global.index-url https://pypi.douban.com/simple COPY requirements.txt requirements.txt RUN pip install -r requirements.txt ENV CUDA_HOME=/usr/local/cuda RUN bash -c "git clone --recursive https://github.com/traveller59/spconv.git" # We manually download and install cmake since the requirements of spconv is newer than # that included in apt for ubuntu18. RUN curl -sLo cmake.tar.gz https://github.com/Kitware/CMake/releases/download/v3.20.1/cmake-3.20.1.tar.gz \ && tar -xvf cmake.tar.gz \ && cd cmake-3.20.1 \ && ./configure \ && make -j4 && sudo make install RUN sudo apt-get update && sudo apt-get install -y libboost-dev \ && sudo rm -rf /var/lib/apt/lists/* COPY docker/spconv.sh spconv.sh RUN bash spconv.sh CMD ["python3"]