ARG PYTORCH="1.6.0"
ARG CUDA="10.0"
ARG CUDNN="7"

FROM registry.cn-shanghai.aliyuncs.com/etlab/asim_autogo:merge
USER root
#RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak
#Add ./docker/sources.list /etc/apt/sources.list
#RUN apt-get update
#RUN apt-get dist-upgrade
#RUN apt-get install -y ffmpeg libsm6 libxext6 ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 vim wget unzip sudo lsof libncurses5-dev libncursesw5-dev libssl-dev\
#    && apt-get clean \
#    && rm -rf /var/lib/apt/lists/*

RUN wget https://pitaya-data-for-annotation.oss-cn-hangzhou.aliyuncs.com/software/perception/Miniconda3-py37_4.10.3-Linux-x86_64.sh \
 && chmod +x Miniconda3-py37_4.10.3-Linux-x86_64.sh \
 && ./Miniconda3-py37_4.10.3-Linux-x86_64.sh -b -f -p /home/administrator/miniconda3 \
 && rm -f ./Miniconda3-py37_4.10.3-Linux-x86_64.sh

RUN /home/administrator/miniconda3/bin/pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple/ \
 && /home/administrator/miniconda3/bin/pip install torchvision==0.7.0

RUN wget https://pitaya-data-for-annotation.oss-cn-hangzhou.aliyuncs.com/software/cmake-3.18.5.tar.gz \
    && tar zxvf cmake-3.18.5.tar.gz && rm -f cmake-3.18.5.tar.gz && cd cmake-3.18.5 \
    && ./bootstrap && make -j8 && make install
RUN rm -rf cmake-3.18.5

# Install MMCV, MMDetection and MMSegmentation
RUN /home/administrator/miniconda3/bin/pip install Cython
RUN /home/administrator/miniconda3/bin/pip install mmcv-full==1.3.8 -f https://download.openmmlab.com/mmcv/dist/cu100/torch1.6.0/index.html
RUN /home/administrator/miniconda3/bin/pip install mmdet==2.14.0
RUN /home/administrator/miniconda3/bin/pip install mmsegmentation==0.14.1

# Install MMDetection3D
ADD . /workspace
WORKDIR /workspace
ENV FORCE_CUDA="1"
RUN /home/administrator/miniconda3/bin/pip install nuscenes-devkit einops
RUN /home/administrator/miniconda3/bin/pip install -r requirements/build.txt

ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX"
ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all"
ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../"

RUN /home/administrator/miniconda3/bin/pip install --no-cache-dir -e .
RUN /home/administrator/miniconda3/bin/pip uninstall mmdet3d --no-cache-dir -y
RUN rm -rf ./build
RUN find . -name "*.so" | xargs rm

# uninstall pycocotools installed by nuscenes-devkit and reinstall mmpycocotools
RUN /home/administrator/miniconda3/bin/pip uninstall pycocotools --no-cache-dir -y
RUN /home/administrator/miniconda3/bin/pip install mmpycocotools --no-cache-dir --force --no-deps

RUN /home/administrator/miniconda3/bin/pip install jupyterlab motmetrics
ADD ./docker/jupyter_notebook_config.json  /root/.jupyter/jupyter_notebook_config.json
ADD ./docker/notebook_matrix /bin/notebook
RUN chmod +x /bin/notebook

WORKDIR /
RUN rm -rf /workspace
RUN /home/administrator/miniconda3/bin/conda clean --all -y
RUN apt-get clean && rm -rf /var/lib/apt/lists/*