Spaces:
Running
Running
| # Copyright 2026 SZL Holdings — SPDX-License-Identifier: Apache-2.0 | |
| # yarqa Space — FastAPI + sovereign static app (vendored THREE r160, zero CDN). | |
| FROM public.ecr.aws/docker/library/python:3.11-slim@sha256:db3ff2e1800a8581e2c48a27c3995339d47bdf046da21c7627accd3d51053a93 | |
| ENV PYTHONUNBUFFERED=1 PORT=7860 | |
| WORKDIR /app | |
| # Install the yarqa package itself (parent dir) plus the space requirements. | |
| COPY pyproject.toml /app/pyproject.toml | |
| COPY yarqa /app/yarqa | |
| COPY space /app/space | |
| RUN pip install --no-cache-dir --require-hashes -r space/requirements.lock && \ | |
| pip install --no-cache-dir --no-deps --no-build-isolation -e . && \ | |
| useradd --create-home --uid 1000 --shell /usr/sbin/nologin yarqa && \ | |
| chown -R yarqa:yarqa /app | |
| EXPOSE 7860 | |
| WORKDIR /app/space | |
| USER yarqa | |
| HEALTHCHECK --interval=10s --timeout=5s --start-period=15s --retries=3 \ | |
| CMD python -c "import json,sys,urllib.request; body=json.load(urllib.request.urlopen('http://127.0.0.1:7860/livez', timeout=3)); sys.exit(0 if body.get('ok') is True and body.get('service') == 'yarqa-space' and body.get('check') == 'liveness' and body.get('yarqa_version') else 1)" | |
| CMD ["python", "-m", "uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"] | |