# 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"]