# Use an official Python image FROM python:3.10-slim # Set environment variables ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 # Set working directory WORKDIR /app # Install system dependencies RUN apt-get update && apt-get install -y \ build-essential \ libglib2.0-0 \ libsm6 \ libxext6 \ libxrender-dev \ && rm -rf /var/lib/apt/lists/* # Copy requirements first to leverage Docker cache COPY requirements.txt . # Install Python dependencies RUN pip install --upgrade pip && pip install -r requirements.txt # Copy the rest of the application code COPY . . # Expose ports (8501 for Streamlit, 8000 for FastAPI) EXPOSE 8501 EXPOSE 8000 # Set entrypoint to run both Streamlit and FastAPI CMD ["sh", "-c", "streamlit run app.py & uvicorn api:app --host 0.0.0.0 --port 8000"]