From c98864cb94cc68f9d98773e2d1005d1407868d43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Cabrero-Holgueras?= Date: Thu, 16 Apr 2026 11:10:59 +0200 Subject: [PATCH] fix: isolate daemon venv from vLLM's /opt/venv Use a separate virtualenv for the nilai daemon to avoid conflicts with vLLM's bundled /opt/venv. Pin transformers==5.5.0 in the vLLM image for gemma4 support. --- docker/vllm.Dockerfile | 10 +++++++++- nilai-models/run.sh | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docker/vllm.Dockerfile b/docker/vllm.Dockerfile index 0b9742df..1206a788 100644 --- a/docker/vllm.Dockerfile +++ b/docker/vllm.Dockerfile @@ -14,14 +14,22 @@ COPY --link . /daemon/ WORKDIR /daemon/nilai-models/ +# Install daemon dependencies into an isolated venv, separate from vLLM's /opt/venv. +# vLLM base image sets VIRTUAL_ENV=/opt/venv and puts it on PATH. +# UV_PROJECT_ENVIRONMENT ensures uv sync targets the daemon's own .venv. RUN apt-get update && \ apt-get install build-essential -y && \ pip install uv && \ - uv sync && \ + UV_PROJECT_ENVIRONMENT=/daemon/nilai-models/.venv uv sync && \ apt-get clean && \ apt-get autoremove && \ rm -rf /var/lib/apt/lists/* +# Upgrade transformers in vLLM's /opt/venv (where pip/python3 resolve via PATH). +# Gemma 4 architecture requires transformers>=5.5.0. +# --no-deps avoids pulling transitive deps that conflict with vLLM's pins. +RUN pip install 'transformers>=5.5.0' --no-deps && pip install 'huggingface-hub>=1.5.0,<2.0' + # Expose port 8000 for incoming requests EXPOSE 8000 diff --git a/nilai-models/run.sh b/nilai-models/run.sh index 67f72f90..bbe1a471 100644 --- a/nilai-models/run.sh +++ b/nilai-models/run.sh @@ -10,7 +10,7 @@ start_primary_process() { start_secondary_process() { echo "Starting the secondary process" - uv run python3 -m nilai_models.daemon + UV_PROJECT_ENVIRONMENT=/daemon/nilai-models/.venv uv run python3 -m nilai_models.daemon } main() {