FROM python:3.13-slim # ffmpeg for audio processing + build deps for psycopg2 RUN apt-get update && apt-get install -y ffmpeg libpq-dev gcc && \ rm -rf /var/lib/apt/lists/* # uv package manager COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv WORKDIR /app # Dependencies (cached separately from code) COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev # Source code COPY src/ ./src/ # Data directories RUN mkdir -p conversations failed_uploads EXPOSE 9000 CMD ["uv", "run", "uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "9000"]