From aa200bf3c5062b8af895900c195badb5a3d6a747 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sun, 7 Jun 2026 10:31:18 +0200 Subject: [PATCH] =?UTF-8?q?feat(nlp-service):=20Dockerfile=20=E2=80=94=20p?= =?UTF-8?q?ython:3.11-slim,=20models=20baked=20in?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nlp-service/Dockerfile | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 nlp-service/Dockerfile diff --git a/nlp-service/Dockerfile b/nlp-service/Dockerfile new file mode 100644 index 00000000..b47a71be --- /dev/null +++ b/nlp-service/Dockerfile @@ -0,0 +1,29 @@ +FROM python:3.11-slim + +WORKDIR /app + +RUN apt-get update && apt-get install -y --no-install-recommends \ + curl \ + && rm -rf /var/lib/apt/lists/* + +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Bake models into the image — no volume needed, ~350 MB total +RUN python -m spacy download de_core_news_sm \ + && python -m spacy download en_core_web_sm \ + && python -m spacy download es_core_news_sm + +COPY . . + +RUN useradd --no-create-home --shell /usr/sbin/nologin --uid 1001 nlp \ + && chown -R nlp:nlp /app + +USER nlp + +EXPOSE 8001 + +HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \ + CMD curl -f http://localhost:8001/health || exit 1 + +CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8001"]