Dockerfile 1.5 KB

12345678910111213141516171819202122232425262728
  1. # GLM-5.2 Int4-Int8Mix overlay on sparkrun-vllm-ds4-gb10:glm52
  2. #
  3. # Unsets VLLM_PREFIX_CACHE_RETENTION_INTERVAL (baked at 4096 in the base
  4. # deepseek image, breaks GLM-5.2) via a wrapper that sources the original
  5. # nvidia_entrypoint.sh first, then hands off with exec after the unset.
  6. #
  7. # Build:
  8. # cd docker-images/glm52 && bash build.sh
  9. # Tags: sparkrun-vllm-ds4-gb10:glm52
  10. FROM aidendle94/sparkrun-vllm-ds4-gb10:production-hybrid-1.4
  11. # 1.4 patches quantization/__init__.py to `from . import hybrid_modelopt_ct`
  12. # but never ships hybrid_modelopt_ct.py — a build bug in the base image that
  13. # breaks all vLLM imports with a circular-import error. Remove the dangling
  14. # import; no recipe uses hybrid_modelopt_ct (all use hybrid_mxfp4_ct).
  15. RUN sed -i '/from . import hybrid_modelopt_ct/d' \
  16. /opt/venv/lib/python3.12/site-packages/vllm/model_executor/layers/quantization/__init__.py
  17. RUN pip install --no-cache-dir --no-deps --force-reinstall nvidia-nccl-cu13==2.30.4 \
  18. && pip install --no-cache-dir --no-deps --force-reinstall instanttensor==0.1.9
  19. # Wrapper: unset the baked var, then hand off to the original entrypoint.
  20. # The original nvidia_entrypoint.sh does `exec "$@"` at the end, so this
  21. # runs as PID 1 with conda/CUDA paths sourced and the baked var gone.
  22. RUN printf '#!/bin/bash\nunset VLLM_PREFIX_CACHE_RETENTION_INTERVAL\nexec /opt/nvidia/nvidia_entrypoint.sh "$@"\n' > /entrypoint-wrapper.sh && chmod +x /entrypoint-wrapper.sh
  23. ENTRYPOINT ["/entrypoint-wrapper.sh"]