# ARG PYTORCH="1.12.1" | |
# ARG CUDA="11.3" | |
# ARG CUDNN="8" | |
FROM python:3.9 | |
# FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel | |
# # fetch the key refer to https://forums.developer.nvidia.com/t/18-04-cuda-docker-image-is-broken/212892/9 | |
# RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub 32 | |
# RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub | |
# 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 apt-get update && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \ | |
# && apt-get clean \ | |
# && rm -rf /var/lib/apt/lists/* | |
# update requirements | |
WORKDIR /code | |
COPY ./requirements.txt /code/requirements.txt | |
RUN apt-get update && apt-get install -y libgl1 | |
RUN pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118 | |
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt | |
# Install MMcv | |
# RUN pip install -U openmim | |
# RUN mim install mmcv==2.0.0 | |
# Install MMPretrain | |
RUN git clone https://github.com/open-mmlab/mmpretrain.git | |
WORKDIR mmpretrain | |
RUN git checkout 4dd8a861456a88966f1672060c1f7b24f05ec363 | |
RUN pip install -U openmim && mim install -e . | |
# RUN mim install --no-cache-dir -e . | |
WORKDIR /code | |
# Install mmdet | |
# RUN mim install mmengine | |
RUN git clone https://github.com/open-mmlab/mmdetection.git | |
WORKDIR mmdetection | |
RUN git checkout v3.1.0 | |
RUN pip install -e . | |
WORKDIR /code | |
RUN pip install mmcv==2.0.1 -f https://download.openmmlab.com/mmcv/dist/cu118/torch2.0/index.html | |
# Set up a new user named "user" with user ID 1000 | |
RUN useradd -m -u 1000 user | |
# Switch to the "user" user | |
USER user | |
# Set home to the user's home directory | |
ENV HOME=/home/user \ | |
PATH=/home/user/.local/bin:$PATH | |
# Set the working directory to the user's home directory | |
WORKDIR $HOME/app | |
# Copy the current directory contents into the container at $HOME/app setting the owner to the user | |
COPY --chown=user . $HOME/app | |
# # Gradio setup | |
# RUN pip install --no-cache-dir gradio | |
# EXPOSE 7860 | |
# ENV GRADIO_SERVER_NAME="0.0.0.0" | |
CMD ["python", "app.py"] | |