# Use an official Python runtime as a parent image FROM python:3.11-slim # Set the working directory in the container WORKDIR /app # Install system dependencies # build-essential is often required for compiling Python packages like sentence-transformers/torch RUN apt-get update && apt-get install -y \ build-essential \ && rm -rf /var/lib/apt/lists/* # Copy the requirements file into the container COPY requirements.txt . # Install any needed packages specified in requirements.txt RUN pip install --no-cache-dir -r requirements.txt # Copy the application code COPY app.py . COPY agent.py . # Copy the vectorstore directory # Assuming the vectorstore is pre-built and located at vectorstore/faiss_index2 COPY vectorstore ./vectorstore # Expose the port Streamlit runs on EXPOSE 8501 # Define environment variable for Streamlit to run in headless mode ENV STREAMLIT_SERVER_HEADLESS=true ENV STREAMLIT_SERVER_ADDRESS=0.0.0.0 # Run app.py when the container launches CMD ["streamlit", "run", "app.py"]