# Build stage FROM python:3.9-slim AS builder WORKDIR /app # Install build dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* # Copy requirements file COPY requirements.txt . # Install dependencies into a virtual environment RUN python -m venv /opt/venv ENV PATH="/opt/venv/bin:$PATH" RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Final stage FROM python:3.9-slim WORKDIR /app # Copy only the necessary files from the builder stage COPY --from=builder /opt/venv /opt/venv # Make sure we use the virtual environment ENV PATH="/opt/venv/bin:$PATH" ENV PYTHONUNBUFFERED=1 # Copy only the application code needed to run the service COPY src/ ./src/ COPY main.py . # Expose the port the app runs on EXPOSE 8000 # Command to run the application CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]