| 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"] | |