Spaces:
Running
Running
| # syntax=docker/dockerfile:1 | |
| # Docker Space for the polygen tokenization demo (public). | |
| # | |
| # A gradio-SDK Space cannot install the wheel (HF mounts requirements.txt and | |
| # runs pip before copying repo files), and polygen requires Python 3.13. A | |
| # Docker base solves both. The wheel is Nuitka-compiled (a binary .so, no | |
| # readable source), and it is NOT in this public repo: it is fetched at build | |
| # time from the private datas3nt/polygen-wheel repo via the WHEEL_TOKEN build | |
| # secret (a fine-grained read-only HF token scoped to that repo), so the | |
| # compiled artifact is not publicly downloadable. mlx[cpu] resolves at | |
| # install on Linux x86. | |
| FROM python:3.13-slim | |
| WORKDIR /app | |
| # git: required by HF Spaces' build wrapper (git config / dev-mode steps), | |
| # which the slim base lacks. curl fetches the private wheel below. | |
| RUN apt-get update && apt-get install -y --no-install-recommends git curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Deps first so this layer caches across code edits. | |
| COPY requirements.txt ./ | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # The polygen wheel, fetched from the private repo. The downloaded file MUST | |
| # keep the full wheel filename: pip rejects a wheel whose filename is not a | |
| # valid name-version-tags string. | |
| RUN --mount=type=secret,id=WHEEL_TOKEN \ | |
| WHL=polygen-0.1.0b1-cp313-cp313-linux_x86_64.whl && \ | |
| TOKEN="$(cat /run/secrets/WHEEL_TOKEN)" && \ | |
| curl -fsSL -H "Authorization: Bearer ${TOKEN}" \ | |
| "https://huggingface.co/datas3nt/polygen-wheel/resolve/main/${WHL}" -o "/tmp/${WHL}" && \ | |
| pip install --no-cache-dir "/tmp/${WHL}" && rm -f "/tmp/${WHL}" | |
| # App code. | |
| COPY . . | |
| # gradio binds all interfaces on the HF app port; analytics off. | |
| ENV GRADIO_SERVER_NAME=0.0.0.0 \ | |
| GRADIO_SERVER_PORT=7860 \ | |
| GRADIO_ANALYTICS_ENABLED=False \ | |
| GRADIO_SSR_MODE=False \ | |
| GRADIO_TEMP_DIR=/tmp/gradio | |
| EXPOSE 7860 | |
| CMD ["python", "app.py"] | |