breakpoint / Dockerfile
eliasteikari's picture
Add AMRFinderPlus mapping and prediction features
19fdb7b
Raw
History Blame Contribute Delete
1.12 kB
# 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}