FROM nvidia/cuda:12.3.2-cudnn9-devel-ubuntu22.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y --no-install-recommends \ git \ wget \ curl \ zip \ ffmpeg \ x264 \ # python build dependencies \ build-essential \ libssl-dev \ zlib1g-dev \ libbz2-dev \ libreadline-dev \ libsqlite3-dev \ libncursesw5-dev \ xz-utils \ tk-dev \ libxml2-dev \ libxmlsec1-dev \ libffi-dev \ liblzma-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* RUN useradd -m -u 1000 user USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:${PATH} WORKDIR ${HOME}/app RUN curl https://pyenv.run | bash ENV PATH=${HOME}/.pyenv/shims:${HOME}/.pyenv/bin:${PATH} ARG PYTHON_VERSION=3.11.8 RUN pyenv install ${PYTHON_VERSION} && \ pyenv global ${PYTHON_VERSION} && \ pyenv rehash && \ pip install --no-cache-dir -U pip setuptools wheel RUN pip install --no-cache-dir -U torch==2.2.1+cu121 torchvision>=0.16+cu121 --extra-index-url https://download.pytorch.org/whl/cu121 COPY --chown=1000 requirements.txt /tmp RUN pip install --no-cache-dir -r /tmp/requirements.txt COPY --chown=1000 . ${HOME}/app RUN git clone git@github.com:cg-tuwien/ppsurf.git RUN cd ppsurf ENV PYTHONPATH=${HOME}/app \ PYTHONUNBUFFERED=1 \ GRADIO_ALLOW_FLAGGING=never \ GRADIO_NUM_PORTS=1 \ GRADIO_SERVER_NAME=0.0.0.0 \ GRADIO_THEME=huggingface \ SYSTEM=spaces CMD ["python", "app.py"]