Spaces:
Running
Running
File size: 2,585 Bytes
076e4c4 f872a02 b6aaa4a 07d0716 f872a02 076e4c4 af9cf58 f872a02 07d0716 a8de063 f872a02 07d0716 f872a02 a8de063 f872a02 a8de063 f872a02 ea02e85 f872a02 af9cf58 f872a02 3738d29 f872a02 07d0716 a8de063 07d0716 076e4c4 07d0716 f872a02 07d0716 f872a02 b6aaa4a 07d0716 b6aaa4a f872a02 ab84b05 f872a02 ae4229d b6aaa4a e10f3ef 9d65c6a b6aaa4a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
FROM ubuntu:24.04
# ENV PIP_ROOT_USER_ACTION=ignore
ARG USERNAME=mcp_user
ARG USER_UID=1000
ARG APP_WORKDIR=app_srv
# Update OS and install packages
WORKDIR /tmp/
COPY requirements.txt packages.txt ./
RUN apt-get -y update && apt-get -y upgrade
# RUN xargs apt -y install < packages.txt
RUN apt-get -y install ffmpeg git git-lfs htop iotop libxml2 libopenblas-dev libssl-dev python3-pip python3-wheel python3-setuptools python-is-python3 wget zlib1g net-tools curl
# Install CUDA 12.8 from Internet
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb \
&& dpkg -i cuda-keyring_1.1-1_all.deb \
&& apt-get update \
&& apt-get -y install cuda-toolkit-12-8
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#post-installation-actions
ENV PATH=/usr/local/cuda-12.8/bin:${PATH}
ENV LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:/usr/lib/x86_64-linux-gnu/
# Install cuDNN for CUDA 12
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb \
&& dpkg -i cuda-keyring_1.1-1_all.deb \
&& apt-get update \
&& apt-get -y install cudnn-cuda-12
# Remove EXTERNALLY-MANAGED
RUN rm -f /usr/lib/python3.12/EXTERNALLY-MANAGED
# Install Pytorch for CUDA 12.8
RUN pip3 install --no-cache-dir torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
# Install other python packages
RUN pip3 install --no-cache-dir -r requirements.txt
# Final image cleanup
RUN apt-get clean
RUN rm -rf /tmp/*
# Preparing an image for HuggingFace Space
## Delete exist user with UID 1000
RUN userdel -r ubuntu || true
## Set up a new user with user ID 1000
## https://huggingface.co/docs/hub/spaces-sdks-docker#permissions
RUN useradd -s /bin/bash -m -u $USER_UID $USERNAME
## Switch to the "user" user
USER $USERNAME
## Set home to the user's home directory
ENV HOME=/home/$USERNAME \
PATH=/home/$USERNAME/.local/bin:$PATH
## Copy the contents of the application directory to the /home/mcp_user/app_srv container directory, setting mcp_user as the user owner
RUN mkdir -p $HOME/$APP_WORKDIR
COPY --chown=$USERNAME ./$APP_WORKDIR/* $HOME/$APP_WORKDIR
# Set the working directory to the user's home directory
WORKDIR $HOME/$APP_WORKDIR
# Gradio network configuration
EXPOSE 7860
ENV GRADIO_SERVER_NAME="0.0.0.0"
# Temporarily set an environment variable for unbuffered output. The goal is to test the application.
ENV PYTHONUNBUFFERED=1
CMD ["python", "app_srv.py"] |