Spaces:
Runtime error
Runtime error
| FROM python:3.13-slim-bookworm | |
| # System packages: redis-server (embedded queue), supervisor (multi-process), curl (debug) | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| redis-server \ | |
| supervisor \ | |
| curl \ | |
| && rm -rf /var/lib/apt/lists/* | |
| COPY --from=ghcr.io/astral-sh/uv:0.9.24 /uv /bin/uv | |
| WORKDIR /app | |
| ENV UV_COMPILE_BYTECODE=1 \ | |
| UV_LINK_MODE=copy \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| UV_CACHE_DIR=/tmp/uv-cache | |
| RUN --mount=type=cache,target=/root/.cache/uv \ | |
| --mount=type=bind,source=uv.lock,target=uv.lock \ | |
| --mount=type=bind,source=pyproject.toml,target=pyproject.toml \ | |
| uv sync --frozen --no-install-project --no-group dev | |
| COPY uv.lock pyproject.toml /app/ | |
| RUN --mount=type=cache,target=/root/.cache/uv \ | |
| uv sync --frozen --no-group dev | |
| ENV PATH="/app/.venv/bin:$PATH" \ | |
| HOME=/app | |
| # HF Spaces convention: non-root user with UID 1000 | |
| RUN groupadd --system --gid 1000 app \ | |
| && useradd --system --uid 1000 --gid 1000 --home /app --shell /bin/sh app \ | |
| && mkdir -p /tmp/uv-cache /var/log/supervisor /var/run/supervisor /var/lib/redis-runtime \ | |
| && chown -R app:app /app /tmp/uv-cache /var/log/supervisor /var/run/supervisor /var/lib/redis-runtime | |
| COPY --chown=app:app src/ /app/src/ | |
| COPY --chown=app:app migrations/ /app/migrations/ | |
| COPY --chown=app:app scripts/ /app/scripts/ | |
| COPY --chown=app:app docker/ /app/docker/ | |
| COPY --chown=app:app alembic.ini /app/alembic.ini | |
| COPY --chown=app:app config.toml* /app/ | |
| COPY --chown=app:app supervisord.conf /app/supervisord.conf | |
| USER app | |
| # Embedded Redis on loopback — ephemeral queue (msgs persist in Postgres) | |
| ENV CACHE_URL="redis://localhost:6379/0?suppress=true" \ | |
| CACHE_ENABLED=true | |
| EXPOSE 8000 | |
| CMD ["/usr/bin/supervisord", "-c", "/app/supervisord.conf"] | |