Spaces:
Sleeping
Sleeping
| # Genome Firewall inference service. | |
| # Based on the AMRFinderPlus image so `amrfinder` is a local binary (with its DB | |
| # baked in) — no Docker-in-Docker at runtime. | |
| FROM staphb/ncbi-amrfinderplus:4.2.7-2026-03-24.1 | |
| # The base image's system Python is too old for scikit-learn 1.9 / pandas 3.0, | |
| # so provision Python 3.13 with uv (mirrors the verified local env). | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends curl ca-certificates \ | |
| && rm -rf /var/lib/apt/lists/* | |
| RUN curl -LsSf https://astral.sh/uv/install.sh | sh | |
| ENV PATH="/root/.local/bin:${PATH}" | |
| WORKDIR /app | |
| COPY requirements.txt . | |
| RUN uv venv --python 3.13 /opt/venv \ | |
| && uv pip install --python /opt/venv/bin/python -r requirements.txt | |
| ENV PATH="/opt/venv/bin:${PATH}" | |
| # Service code + pipeline + models (models/, features/, gf_infer.py, serve.py). | |
| COPY . /app | |
| ENV AMRFINDER_THREADS=4 | |
| EXPOSE 8000 | |
| # Optional: set INFERENCE_API_TOKEN to require a bearer token on /predict. | |
| # Shell form so ${PORT} (Render, etc.) expands; falls back to 8000 (HF Spaces app_port). | |
| CMD uvicorn serve:app --host 0.0.0.0 --port ${PORT:-8000} | |