Spaces:
Sleeping
Sleeping
| FROM python:3.12-slim AS builder | |
| COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv | |
| WORKDIR /app | |
| COPY pyproject.toml uv.lock ./ | |
| COPY src/ src/ | |
| RUN uv sync --frozen --no-dev | |
| FROM python:3.12-slim | |
| WORKDIR /app | |
| COPY --from=builder /app/.venv /app/.venv | |
| COPY --from=builder /app/src /app/src | |
| COPY data/ data/ | |
| RUN useradd -m -r appuser && chown -R appuser:appuser /app | |
| USER appuser | |
| ENV PATH="/app/.venv/bin:$PATH" | |
| ENV PYTHONPATH="/app/src" | |
| EXPOSE 8000 | |
| HEALTHCHECK --interval=15s --timeout=5s --start-period=5s --retries=3 \ | |
| CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health/live')" || exit 1 | |
| CMD ["uvicorn", "lexenvs.harbor_app:app", "--host", "0.0.0.0", "--port", "8000"] | |