# Build from the project root: docker build -f vocero-api/Dockerfile -t vocero-api .
# Serve backend APIs, the WebSocket proxy, and shared project documentation.
# Run the React/Vite frontend separately; this image contains no browser UI.
# HF Spaces (sdk: docker) routes traffic to $PORT, default 7860.
FROM python:3.12.14-slim

COPY --from=ghcr.io/astral-sh/uv:0.12.5 /uv /uvx /bin/

ENV UV_LINK_MODE=copy \
    UV_PYTHON_DOWNLOADS=never \
    PATH="/app/vocero-api/.venv/bin:$PATH"

WORKDIR /app/vocero-api

COPY vocero-api/pyproject.toml vocero-api/uv.lock ./
RUN uv sync --locked --no-dev --no-install-project

COPY vocero-api/README.md vocero-api/server.py ./
COPY vocero-api/vocero_api/ ./vocero_api/
COPY docs/ /app/docs/
RUN uv sync --locked --no-dev

EXPOSE 7860

CMD ["uvicorn", "vocero_api.main:app", "--host", "0.0.0.0", "--port", "7860"]
