|
FROM nvidia/cuda:12.1.1-devel-ubuntu22.04 |
|
|
|
|
|
ENV CUDA_HOME=/usr/local/cuda-12.1 |
|
ENV LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH |
|
ENV PATH=$CUDA_HOME/bin:$PATH |
|
|
|
|
|
ENV TORCH_CUDA_ARCH_LIST="7.0 7.5 8.0 8.6 8.9 9.0+PTX" |
|
|
|
|
|
|
|
RUN apt-get update && \ |
|
DEBIAN_FRONTEND=noninteractive apt-get install -y \ |
|
build-essential wget nano curl ninja-build unzip libgl-dev ffmpeg \ |
|
libgl1-mesa-glx libsm6 libxext6 && \ |
|
apt-get clean && \ |
|
rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
|
|
RUN useradd -m -u 1000 user |
|
|
|
|
|
|
|
ENV CONDA_DIR=/home/user/miniconda |
|
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /home/user/miniconda.sh && \ |
|
chown user:user /home/user/miniconda.sh && \ |
|
/bin/bash /home/user/miniconda.sh -b -p $CONDA_DIR && \ |
|
rm /home/user/miniconda.sh && \ |
|
chown -R user:user $CONDA_DIR |
|
|
|
|
|
USER user |
|
|
|
|
|
ENV HOME=/home/user \ |
|
PATH=$CONDA_DIR/bin:$PATH \ |
|
PYTHONPATH=/home/user/app \ |
|
PYTHONUNBUFFERED=1 \ |
|
GRADIO_ALLOW_FLAGGING=never \ |
|
GRADIO_NUM_PORTS=1 \ |
|
GRADIO_SERVER_NAME=0.0.0.0 \ |
|
GRADIO_THEME=huggingface \ |
|
SYSTEM=spaces |
|
|
|
|
|
WORKDIR $HOME/app |
|
|
|
|
|
|
|
COPY --chown=user . $HOME/app/ |
|
|
|
|
|
RUN conda update -n base conda -y && \ |
|
conda install -n base conda-libmamba-solver -y && \ |
|
conda config --set solver libmamba |
|
|
|
|
|
RUN conda create -y -n edgs python=3.10 pip |
|
|
|
|
|
SHELL ["conda", "run", "-n", "edgs", "/bin/bash", "-c"] |
|
|
|
|
|
RUN conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia -y |
|
|
|
|
|
RUN pip install -e submodules/gaussian-splatting/submodules/diff-gaussian-rasterization --no-build-isolation && \ |
|
pip install -e submodules/gaussian-splatting/submodules/simple-knn --no-build-isolation |
|
|
|
|
|
RUN pip install pycolmap |
|
|
|
|
|
RUN pip install wandb hydra-core tqdm torchmetrics lpips matplotlib rich plyfile imageio imageio-ffmpeg && \ |
|
conda install numpy=1.26.4 -y -c conda-forge --override-channels |
|
|
|
|
|
RUN pip install -e submodules/RoMa |
|
|
|
|
|
RUN pip install plotly scikit-learn moviepy==2.1.1 ffmpeg && \ |
|
pip install fastapi[standard] |
|
|
|
|
|
EXPOSE 7860 |
|
|
|
CMD ["/bin/bash", "-c", "source /home/user/miniconda/bin/activate edgs && exec uvicorn main:app --host 0.0.0.0 --port 7860"] |
|
|
|
|