FROM python:3.11-slim # Copy uv binary from official image COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 WORKDIR /app # Install dependencies (production only, lockfile strict) COPY pyproject.toml uv.lock README.md ./ RUN uv sync --no-dev --frozen # Copy source code COPY src/ ./src/ # HuggingFace Spaces requires port 7860 EXPOSE 7860 CMD ["uv", "run", "streamlit", "run", "src/api/app.py", \ "--server.port=7860", \ "--server.address=0.0.0.0", \ "--server.headless=true"]