FROM nvidia/cuda:12.4.1-devel-ubuntu22.04 # Set the working directory in the container WORKDIR /DocQA # Install system dependencies, including Python and utilities RUN apt-get update && apt-get install -y \ git \ python3.10 \ python3-pip \ poppler-utils \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Add a new user to avoid running as root RUN useradd -m -u 1000 user # Switch to the new user USER user ENV HOME=/home/user ENV PATH=/home/user/.local/bin:/usr/local/cuda/bin:$PATH # Set the working directory for the application WORKDIR $HOME/app # Copy the requirements.txt first to leverage Docker cache COPY --chown=user requirements.txt $HOME/app/ RUN pip install --no-cache-dir -r requirements.txt RUN pip uninstall --y faiss-cpu & pip install faiss-gpu RUN pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu124 # Copy the rest of the application's code to the container COPY --chown=user . $HOME/app # Expose the port the app runs on EXPOSE 8501 # Set the entry point to run the application ENTRYPOINT ["streamlit", "run", "app.py", "--server.enableXsrfProtection", "false"]