Spaces:
Sleeping
Sleeping
| # Hugging Face Spaces β Docker SDK | |
| # Docs: https://huggingface.co/docs/hub/spaces-sdks-docker | |
| FROM python:3.12-slim | |
| # ββ HF Spaces: non-root user with uid 1000 ββββββββββββββββββββββββββββββββββββ | |
| RUN useradd -m -u 1000 appuser | |
| # ββ Install uv ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/ | |
| # ββ Working directory βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| WORKDIR /app | |
| # ββ Copy dependency manifests first (layer-cache friendly) βββββββββββββββββββ | |
| COPY pyproject.toml uv.lock ./ | |
| # ββ Install dependencies ββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| RUN uv sync --frozen --no-install-project --no-dev | |
| # ββ Copy source βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| COPY app/ ./app/ | |
| COPY main.py development.yml ./ | |
| # ββ Fix ownership then drop privileges ββββββββββββββββββββββββββββββββββββββββ | |
| RUN chown -R appuser:appuser /app | |
| USER appuser | |
| ENV HOME=/home/appuser \ | |
| PATH=/home/appuser/.local/bin:$PATH \ | |
| PYTHONUNBUFFERED=1 \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| HOST=0.0.0.0 \ | |
| PORT=7860 | |
| # ββ HF Spaces requires port 7860 ββββββββββββββββββββββββββββββββββββββββββββββ | |
| EXPOSE 7860 | |
| CMD ["uv", "run", "main.py"] |