diff --git a/machine-learning/Dockerfile b/machine-learning/Dockerfile
index 002d21e183..800a5ae9e6 100644
--- a/machine-learning/Dockerfile
+++ b/machine-learning/Dockerfile
@@ -19,7 +19,8 @@ FROM builder-${DEVICE} AS builder
 
 ARG DEVICE
 ENV PYTHONDONTWRITEBYTECODE=1 \
-    PYTHONUNBUFFERED=1
+    PYTHONUNBUFFERED=1 \
+    VIRTUAL_ENV=/opt/venv
 WORKDIR /usr/src/app
 
 RUN apt-get update && apt-get install -y --no-install-recommends g++
@@ -28,7 +29,7 @@ COPY --from=ghcr.io/astral-sh/uv:latest@sha256:562193a4a9d398f8aedddcb223e583da3
 RUN --mount=type=cache,target=/root/.cache/uv \
     --mount=type=bind,source=uv.lock,target=uv.lock \
     --mount=type=bind,source=pyproject.toml,target=pyproject.toml \
-    uv sync --frozen --extra ${DEVICE} --no-dev --no-editable --no-install-project --compile-bytecode --no-progress
+    uv sync --frozen --extra ${DEVICE} --no-dev --no-editable --no-install-project --compile-bytecode --no-progress --active --link-mode copy
 
 FROM python:3.11-slim-bookworm@sha256:614c8691ab74150465ec9123378cd4dde7a6e57be9e558c3108df40664667a4c AS prod-cpu
 
@@ -89,16 +90,17 @@ WORKDIR /usr/src/app
 ENV TRANSFORMERS_CACHE=/cache \
     PYTHONDONTWRITEBYTECODE=1 \
     PYTHONUNBUFFERED=1 \
-    PATH="/usr/src/app/.venv/bin:$PATH" \
+    PATH="/opt/venv/bin:$PATH" \
     PYTHONPATH=/usr/src \
-    DEVICE=${DEVICE}
+    DEVICE=${DEVICE} \
+    VIRTUAL_ENV=/opt/venv
 
 # prevent core dumps
 RUN echo "hard core 0" >> /etc/security/limits.conf && \
     echo "fs.suid_dumpable 0" >> /etc/sysctl.conf && \
     echo 'ulimit -S -c 0 > /dev/null 2>&1' >> /etc/profile
 
-COPY --from=builder /usr/src/app/.venv /usr/src/app/.venv
+COPY --from=builder /opt/venv /opt/venv
 COPY ann/ann.py /usr/src/ann/ann.py
 COPY start.sh log_conf.json gunicorn_conf.py ./
 COPY app .