FROM python:3.13-slim-bookworm # OpenCV (pulled in by ultralytics) links against X11 client libs; slim images omit them. RUN apt-get update && apt-get install -y --no-install-recommends \ ffmpeg \ libgl1 \ libglib2.0-0 \ libgomp1 \ libxcb1 \ && rm -rf /var/lib/apt/lists/* COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv WORKDIR /app ENV PYTHONUNBUFFERED=1 \ UV_COMPILE_BYTECODE=1 \ UV_LINK_MODE=copy COPY pyproject.toml uv.lock main.py ./ COPY app ./app/ RUN uv sync --frozen --no-dev ENV PATH="/app/.venv/bin:$PATH" EXPOSE 8000 CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]