Spaces:
Paused
Paused
| # Nori multi-policy inference image (INFERENCE_ENDPOINT_PLAN step 5). | |
| # | |
| # ONE Dockerfile, per-kind requirements via build arg: | |
| # docker build --build-arg MODEL_KIND=molmoact2 -t nori-serve-molmoact2 . | |
| # docker build --build-arg MODEL_KIND=pi05 -t nori-serve-pi05 . | |
| # Run with env MODEL_KIND matching the build arg (the arg only picks which | |
| # requirements file is installed; the env picks the adapter at boot). | |
| # | |
| # Base per kind (BUILD_BASE arg): | |
| # molmoact2 -> pytorch/pytorch:2.5.1-cuda12.1 (the proven Space stack; never | |
| # reinstall torch/torchvision/torchaudio on top — ABI break, space/Dockerfile) | |
| # pi05 -> python:3.12-slim (the pinned lerobot REQUIRES py>=3.12, which no | |
| # pytorch/pytorch image ships; lerobot's own dep spec then installs the torch | |
| # it wants — CUDA-bundled pip wheels, host driver via the endpoint runtime. | |
| # This mirrors lelab's local venv, the combo the pi05 load path was proven on.) | |
| ARG BUILD_BASE=python:3.12-slim | |
| FROM ${BUILD_BASE} | |
| ARG MODEL_KIND=groot | |
| ENV HOME=/home/user \ | |
| PYTHONUNBUFFERED=1 \ | |
| HF_HOME=/home/user/.cache/huggingface \ | |
| HF_HUB_ENABLE_HF_TRANSFER=1 \ | |
| MODEL_KIND=${MODEL_KIND} | |
| # ffmpeg for av decode; git for the pinned lerobot install (pi05 kind). | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| ffmpeg libgl1 libglib2.0-0 git && \ | |
| rm -rf /var/lib/apt/lists/* | |
| RUN useradd -m -u 1000 user | |
| WORKDIR /app | |
| COPY --chown=user:user requirements-${MODEL_KIND}.txt ./requirements.txt | |
| RUN pip install --no-cache-dir -r requirements.txt hf_transfer | |
| COPY --chown=user:user server.py rtc.py ./ | |
| COPY --chown=user:user adapters/ ./adapters/ | |
| RUN mkdir -p /home/user/.cache/huggingface && chown -R user:user /home/user /app | |
| USER user | |
| # PORT: Spaces route to 7860; Inference Endpoints take the port from the | |
| # endpoint config — declare 7860 there, or set PORT. health_route=/ready. | |
| EXPOSE 7860 | |
| CMD ["sh", "-c", "uvicorn server:app --host 0.0.0.0 --port ${PORT:-7860}"] | |