FROM nvidia/cuda:12.1.1-devel-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1 \ CUDA_HOME=/usr/local/cuda TORCH_CUDA_ARCH_LIST="8.0" FORCE_CUDA=1 MAX_JOBS=2 RUN apt-get update && apt-get install -y --no-install-recommends \ libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev liblzma-dev libncursesw5-dev libgdbm-dev uuid-dev build-essential git git-lfs wget ca-certificates \ libegl1 libgl1 libglib2.0-0 libxi6 libxkbcommon-x11-0 libxrender1 libsm6 libxext6 \ && rm -rf /var/lib/apt/lists/* RUN wget -q https://www.python.org/ftp/python/3.11.16/Python-3.11.16.tgz -O /tmp/python.tgz \ && echo "6c0bd76ab0ec7d94ed400b1497f01ac6c7751c8822615ee0855a3eb2d893ea76 /tmp/python.tgz" | sha256sum -c - \ && tar -xzf /tmp/python.tgz -C /tmp \ && cd /tmp/Python-3.11.16 && ./configure --prefix=/opt/python --with-ensurepip=install \ && make -j4 && make install \ && /opt/python/bin/python3.11 -m venv /opt/venv \ && rm -rf /tmp/Python-3.11.16 /tmp/python.tgz ENV PATH=/opt/venv/bin:/usr/local/cuda/bin:$PATH WORKDIR /opt/space RUN python -m pip install --no-cache-dir pip==24.3.1 setuptools==75.6.0 wheel==0.45.1 ninja==1.11.1.3 COPY docker-requirements.txt . RUN python -m pip install --no-cache-dir --extra-index-url https://download.pytorch.org/whl/cu121 -r docker-requirements.txt # Build required CUDA binaries from pinned official sources. No data.pyg.org # access, no unpinned fallback, and no compilation or pip at startup. RUN python -m pip wheel --no-cache-dir --no-deps --no-build-isolation --no-binary=torch-cluster \ torch-cluster==1.6.3 -w /opt/wheels \ && python -m pip install --no-index --no-deps /opt/wheels/torch_cluster-*.whl RUN git clone --depth 1 --branch v0.7.7 https://github.com/facebookresearch/pytorch3d.git /opt/pytorch3d \ && python -m pip wheel --no-cache-dir --no-deps --no-build-isolation /opt/pytorch3d -w /opt/wheels \ && python -m pip install --no-index --no-deps /opt/wheels/pytorch3d-*.whl RUN python -c "import bpy,torch,torch_cluster,pytorch3d; from pytorch3d import _C; assert torch.__version__ == '2.1.2+cu121'; assert torch.version.cuda == '12.1'; assert torch.ops.torch_cluster.cuda_version() > 0; print('BUILD_BINARY_CHECK_PASS', bpy.app.version_string, torch.__version__, torch_cluster.__version__, pytorch3d.__version__)" # Keep the exact upstream revision already used by this Space. RUN git clone https://github.com/jasongzy/Make-It-Animatable.git /opt/space/upstream \ && git -C upstream checkout d60cc7e01ff8da46448e458dbf450e8967b34e77 \ && git -C upstream submodule update --init --recursive \ && wget -q https://github.com/facebookincubator/FBX2glTF/releases/download/v0.9.7/FBX2glTF-linux-x64 -O upstream/util/FBX2glTF \ && chmod +x upstream/util/FBX2glTF \ && upstream/util/FBX2glTF --help > /dev/null COPY docker_patch.py runtime.py preflight.py docker_app.py test_preflight.py ./ RUN python docker_patch.py \ && python -m unittest -v test_preflight \ && python -m compileall -q runtime.py preflight.py docker_app.py upstream \ && python -m pip freeze > /opt/space/build-packages.txt RUN useradd -m -u 1000 user && chown -R user:user /opt/space USER user ENV HOME=/home/user EXPOSE 7860 CMD ["python", "/opt/space/docker_app.py"]