Spaces:
Sleeping
Sleeping
| FROM python:3.12-slim AS builder | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 | |
| COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ | |
| WORKDIR /app | |
| COPY pyproject.toml uv.lock README.md ./ | |
| RUN uv sync --frozen --no-install-project --no-dev | |
| COPY __init__.py client.py env_loader.py inference.py models.py openenv.yaml ./ | |
| COPY server ./server | |
| COPY data ./data | |
| RUN uv sync --frozen --no-dev | |
| FROM python:3.12-slim | |
| ENV PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| HOST=0.0.0.0 \ | |
| PORT=7860 \ | |
| PATH="/app/.venv/bin:$PATH" | |
| WORKDIR /app | |
| RUN useradd -m appuser | |
| COPY --from=builder --chown=appuser:appuser /app /app | |
| RUN mkdir -p /app/workspace && chown -R appuser:appuser /app | |
| USER appuser | |
| HEALTHCHECK --interval=30s --timeout=5s --retries=3 \ | |
| CMD python -c "import os, urllib.request; urllib.request.urlopen('http://127.0.0.1:' + os.getenv('PORT', '7860') + '/health')" || exit 1 | |
| EXPOSE 7860 | |
| ENV ENABLE_WEB_INTERFACE=true | |
| CMD ["python", "-m", "server"] | |