gemmacut-spectral / docker /Dockerfile
satya007's picture
Add no-weights Docker image build path
6b080ac verified
ARG BASE_IMAGE=vllm/vllm-openai:gemma4-cu130
FROM ${BASE_IMAGE}
ARG VLLM_REPO=https://github.com/bluecopa/vllm-spectral.git
ARG VLLM_BRANCH=spectral-codebook-docker
ARG VLLM_COMMIT=008dd7f87fb9de185e536ad30b4d524024ed9b9f
ARG HF_REPO_ID=satya007/gemmacut-spectral
ARG SIDECAR_SHA256=e47a36c13467cbedf720e7f782b976df3dcda2d989c727113a8315008661a3e4
ARG INCLUDE_SIDECAR=1
LABEL org.opencontainers.image.title="gemmacut-spectral"
LABEL org.opencontainers.image.description="GemmaCut SpectralQuant Phase 2 + Eagle3 vLLM runtime; model weights are not baked into the image."
LABEL org.opencontainers.image.source="https://github.com/bluecopa/vllm-spectral"
LABEL org.opencontainers.image.revision="${VLLM_COMMIT}"
ENV VLLM_SOURCE=/opt/vllm-spectral \
GEMMACUT_HOME=/opt/gemmacut \
SPECTRAL_SIDECAR=/opt/gemmacut/artifacts/spectral_sidecar_chat_v2.pt \
HF_HUB_DISABLE_XET=1 \
SPECTRAL_TRITON_COMPRESS=1 \
SPECTRAL_TRITON_DEQUANT=1 \
SPECTRAL_CUDA_GRAPH=1 \
SPECTRAL_VERIFY=0 \
DISABLE_HYBRID_KV_CACHE_MANAGER=0
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
cmake \
git \
ninja-build && \
rm -rf /var/lib/apt/lists/*
RUN git clone --branch "${VLLM_BRANCH}" "${VLLM_REPO}" "${VLLM_SOURCE}" && \
git -C "${VLLM_SOURCE}" checkout "${VLLM_COMMIT}" && \
git -C "${VLLM_SOURCE}" log --oneline -1
COPY docker/download_sidecar.py /tmp/download_sidecar.py
RUN mkdir -p "${GEMMACUT_HOME}/artifacts" && \
if [[ "${INCLUDE_SIDECAR}" == "1" ]]; then \
HF_REPO_ID="${HF_REPO_ID}" \
SIDECAR_SHA256="${SIDECAR_SHA256}" \
python3 /tmp/download_sidecar.py; \
else \
echo "INCLUDE_SIDECAR=0; mount or set SPECTRAL_SIDECAR at runtime"; \
fi && \
rm -f /tmp/download_sidecar.py
COPY docker/entrypoint.sh /usr/local/bin/gemmacut-spectral
RUN chmod +x /usr/local/bin/gemmacut-spectral
EXPOSE 8000
ENTRYPOINT ["gemmacut-spectral"]
CMD ["serve"]