# FROM nvidia/cuda:11.3.1-base-ubuntu20.04 FROM ubuntu:20.04 # Remove any third-party apt sources to avoid issues with expiring keys. RUN rm -f /etc/apt/sources.list.d/*.list # Install some basic utilities RUN apt-get update && apt-get install -y \ curl ca-certificates sudo git bzip2 libx11-6 && \ rm -rf /var/lib/apt/lists/* # Create a working directory RUN mkdir /app WORKDIR /app # Create a non-root user and switch to it RUN adduser --disabled-password --gecos '' --shell /bin/bash user && \ chown -R user:user /app RUN echo "user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/90-user USER root # All users can use /home/user as their home directory ENV HOME=/home/user RUN mkdir $HOME/.cache $HOME/.config && \ chmod -R 777 $HOME # Set up the Conda environment ENV CONDA_AUTO_UPDATE_CONDA=false \ PATH=$HOME/miniconda/bin:$PATH RUN curl -sLo ~/miniconda.sh https://repo.continuum.io/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh && \ chmod +x ~/miniconda.sh && \ ~/miniconda.sh -b -p ~/miniconda && \ rm ~/miniconda.sh && \ conda clean -ya ENV PYTHONUNBUFFERED=1 \ GRADIO_ALLOW_FLAGGING=never \ GRADIO_NUM_PORTS=1 \ GRADIO_SERVER_NAME=0.0.0.0 \ GRADIO_THEME=huggingface \ SYSTEM=spaces RUN conda install -c conda-forge -y jupyterlab # RUN pip install --no-cache-dir fire gradio datasets huggingface_hub # Install user requirements COPY ./requirements.txt /app/requirements.txt RUN pip install --no-cache-dir --upgrade -r /app/requirements.txt WORKDIR $HOME/app # USER root # Copy the current directory contents into the container at $HOME/app setting the owner to the root user COPY --chown=root . $HOME/app RUN chmod +x start_server.sh EXPOSE 7860 CMD ["./start_server.sh"]