FROM lmcache/vllm-openai:2025-05-27-v1

WORKDIR /app

# hadolint ignore=DL3008
RUN --mount=type=cache,target=/var/lib/apt --mount=type=cache,target=/var/cache/apt \
    apt-get update && \
    apt-get install -y --no-install-recommends git && \
    rm -rf /var/lib/apt/lists/*

# Copy the pyproject.toml and the git metadata first (leverage Docker layer caching)
COPY pyproject.toml .
COPY .git/ .git/

# Copy the rest of the application code
COPY src/ src/

ARG INSTALL_OPTIONAL_DEP=semantic_cache,lmcache
ENV INSTALL_OPTIONAL_DEP=${INSTALL_OPTIONAL_DEP}

# hadolint ignore=SC1091
RUN . /opt/venv/bin/activate && \
    uv pip install --upgrade --no-cache-dir pip setuptools_scm && \
    uv pip install --no-cache-dir .

# Set the entrypoint
ENTRYPOINT ["/opt/venv/bin/vllm-router"]
CMD []