| | # Derived SM121 (GB10) vLLM image with the Aleph Alpha Kolibri proprietary plugin. | | | # |
| | # Base: eugr/spark-vllm:latest — a native GB10 (SM121/12.1a) vLLM build produced |
| | # by eugr/spark-vllm-docker (FlashInfer + vLLM compiled for the Blackwell 40-bit SoC). |
| | # | | | # The Aleph Alpha plugin (aleph-alpha-inference 1.0.0) is a pure-Python | | | # vllm.general_plugins entry point that adds Kolibri1ForCausalLM plus the | | | # kolibri1 reasoning/tool parsers. It is version-pinned to vllm>=0.29,<0.30, so | | | # we install it with --no-deps to keep the SM121-compiled vLLM/torch intact and | | | # only --override the declared torch/transformers bounds instead of letting pip | | | # swap in PyPI wheels (which would lose the SM121 kernels / break CUDA-13 torch). | | | FROM eugr/spark-vllm:latest | | | | | | # Reuse the image's own pip/uv/cache conventions so installs stay consistent. | | | ENV DEBIAN_FRONTEND=noninteractive | | | ENV PIP_BREAK_SYSTEM_PACKAGES=1 | | | ENV UV_SYSTEM_PYTHON=1 | | | ENV UV_BREAK_SYSTEM_PACKAGES=1 | | | ENV UV_LINK_MODE=copy | | | | | | # Pin the already-installed (SM121/GB10) torch & transformers to their current | | | # versions so the plugin's dependency lower-bounds cannot trigger a swap to a | | | # non-SM121 PyPI wheel, then install the plugin without its vLLM dependency. |
| | RUN set -eux; \ |
| | PINNED_TORCH=$(python3 -c "import torch; print(torch.__version__)"); \ |
| | PINNED_TF=$(python3 -c "import importlib.metadata as m; print(m.version('transformers'))" 2>/dev/null \|\| echo "0"); \ |
| | echo "torch==${PINNED_TORCH}" > /tmp/plugin-override.txt; \ |
| | if [ "$PINNED_TF" != "0" ]; then echo "transformers==${PINNED_TF}" >> /tmp/plugin-override.txt; fi; \ |
| | uv pip install aleph-alpha-inference --no-deps --override /tmp/plugin-override.txt |
| | | | | # Self-check: the package and its vLLM entry point are importable/registered. | | | RUN python3 -c "import importlib.metadata as m; print('aleph-alpha-inference', m.version('aleph-alpha-inference'))" && \ | | | python3 -c "import importlib.metadata as m; \ |
| | eps=m.entry_points(); \ |
| | EP=[e for e in eps.select(group='vllm.general_plugins') if 'aleph' in e.name]; \ |
| | assert EP, 'aleph plugin entry point not found'; \ | | | [print('entry point:', e.name, '->', e.value) for e in EP]" |