FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu20.04 # Set the environment variable to noninteractive to avoid tzdata prompts ENV DEBIAN_FRONTEND=noninteractive # Install Python and other dependencies RUN apt-get update && apt-get install -y \ python3.10 \ python3-pip \ ffmpeg \ tzdata \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Configure the timezone (change to your preferred timezone) RUN ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime && \ dpkg-reconfigure --frontend noninteractive tzdata # Set up the working directory WORKDIR /app # Copy the requirements file and install dependencies COPY ./requirements.txt /app/requirements.txt RUN python3 -m pip install --upgrade pip \ && python3 -m pip install --no-cache-dir --upgrade -r /app/requirements.txt # Add and configure the user RUN useradd -m -u 1000 user # Set environment variables for the user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ CUDA_HOME=/ # Set the user and working directory USER user WORKDIR $HOME/app # Copy the application code COPY --chown=user . $HOME/app # Ensure the user has the correct permissions RUN chmod -R 777 $HOME/app # Set additional environment variables ENV NUMBA_CACHE_DIR=/tmp/NUMBA_CACHE_DIR/ ENV MPLCONFIGDIR=/tmp/MPLCONFIGDIR/ ENV PATH="/opt/venv/bin:$PATH" # Set the command to run the application CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]