FROM python:3.10-slim # System libs needed by open3d, opencv, pyvista, trimesh, etc. RUN apt-get update && apt-get install -y --no-install-recommends git curl gcc g++ libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender-dev libgomp1 && rm -rf /var/lib/apt/lists/* RUN useradd -m -u 1000 user WORKDIR /home/user/app # Install Python deps — this layer is cached until requirements.txt changes # Pre-clone sam-3d-objects and install as a package (no heavy deps) RUN git clone --depth=1 https://github.com/facebookresearch/sam-3d-objects.git /home/user/app/sam-3d-objects && pip install --no-cache-dir --no-deps -e /home/user/app/sam-3d-objects # Pre-clone DINOv2 into torch hub cache so inference does not need GitHub access at runtime RUN mkdir -p /home/user/.cache/torch/hub && git clone --depth=1 https://github.com/facebookresearch/dinov2.git /home/user/.cache/torch/hub/facebookresearch_dinov2_main && chown -R user:user /home/user/.cache/torch COPY --chown=user:user . . USER user ENV HOME=/home/user EXPOSE 7860 CMD ["python", "app.py"]