remiii25's picture
Update Dockerfile
cd8da28 verified
FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive
ENV PYTHONUNBUFFERED=1
ENV PIP_NO_CACHE_DIR=1
# System deps (compiler toolchain + git + minimal libs for OpenCV headless)
RUN apt-get update && apt-get install -y \
python3.10 python3.10-dev python3-pip \
git git-lfs \
build-essential cmake ninja-build \
libglib2.0-0 libsm6 libxrender1 libxext6 \
&& rm -rf /var/lib/apt/lists/*
RUN git lfs install
# Upgrade pip tooling
RUN python3.10 -m pip install --upgrade pip setuptools wheel
# Pin numpy first (your requirement)
RUN pip install numpy==1.26.4
RUN printf "numpy==1.26.4\n" > /tmp/constraints.txt
# Install PyTorch cu118 pinned versions (your requirement)
RUN pip uninstall -y torch torchvision torchaudio || true
RUN pip install -c /tmp/constraints.txt torch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 \
--index-url https://download.pytorch.org/whl/cu118
# Clone ProFuse with submodules
RUN git clone --recurse-submodules https://github.com/chiou1203/ProFuse.git /workspace/ProFuse
# Install python deps (match your colab steps)
WORKDIR /workspace/ProFuse
WORKDIR /workspace/ProFuse/feature_registration
RUN pip install -c /tmp/constraints.txt tqdm plyfile open_clip_torch
RUN pip install -c /tmp/constraints.txt gradio requests huggingface_hub opencv-python-headless
RUN pip install -c /tmp/constraints.txt ninja kmeans_pytorch faiss-cpu
# Install submodules + extra deps you used
# sanity check: torch must exist before building extensions
RUN python3.10 -c "import torch; print('torch', torch.__version__); print('cuda', torch.version.cuda)"
# pure python deps first
#RUN pip install -q ninja kmeans_pytorch faiss-cpu
# build CUDA/C++ extensions in the main env (avoid PEP517 isolated env missing torch)
# Build-time CUDA settings (HF build has no GPU -> must set arch list)
ENV CUDA_HOME=/usr/local/cuda
ENV FORCE_CUDA=1
# IMPORTANT: keep this small to reduce compile time + RAM.
# If you plan to run on A10G, 8.6 is usually enough.
ENV TORCH_CUDA_ARCH_LIST="8.6"
# Limit compilation parallelism to avoid OOM (exit 137)
ENV MAX_JOBS=1
ENV CMAKE_BUILD_PARALLEL_LEVEL=1
ENV MAKEFLAGS="-j1"
RUN pip install -c /tmp/constraints.txt -q --no-build-isolation --no-deps submodules/simple-knn
RUN pip install -q --no-build-isolation submodules/langsplat-rasterization
RUN pip install -q --no-build-isolation submodules/segment-anything-langsplat
#RUN pip uninstall -y gradio || true
#RUN pip install -U "gradio>=4.0.0" "gradio_client>=0.8.0"
# App/runtime deps
#RUN pip install gradio requests huggingface_hub opencv-python-headless
# Copy app
WORKDIR /app
COPY app.py /app/app.py
RUN python3.10 -m pip uninstall -y gradio gradio_client || true
RUN printf "numpy==1.26.4\n" > /tmp/constraints.txt
RUN python3.10 -m pip install -c /tmp/constraints.txt --no-cache-dir --force-reinstall "gradio>=4.44,<6" "gradio_client>=0.8"
RUN python3.10 -c "import gradio as gr; print('gradio in image =', gr.__version__)"
EXPOSE 7860
CMD ["python3.10", "/app/app.py"]