Skip to content

Commit 746b690

Browse files
committed
feat: add MUSA and OpenVINO support using upstream llama.cpp images
Add musa and openvino as new LLAMA_SERVER_VARIANT options, leveraging the official ghcr.io/ggml-org/llama.cpp server-musa and server-openvino images. Changes: - scripts/resolve-llama-upstream-image.sh: map musa -> server-musa, openvino -> server-openvino - Makefile: add docker-build-musa, docker-run-musa, docker-build-openvino, docker-run-openvino targets; restrict both to linux/amd64; update help - .github/workflows/release.yml: add MUSA and OpenVINO image build steps with tags docker/model-runner:{tag}-musa and docker/model-runner:{tag}-openvino
1 parent 2f74a42 commit 746b690

3 files changed

Lines changed: 85 additions & 2 deletions

File tree

.github/workflows/release.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,14 @@ jobs:
261261
echo "docker/model-runner:$RELEASE_TAG-sglang-cuda" >> "$GITHUB_OUTPUT"
262262
echo "docker/model-runner:latest-sglang-cuda" >> "$GITHUB_OUTPUT"
263263
echo 'EOF' >> "$GITHUB_OUTPUT"
264+
echo "musa<<EOF" >> "$GITHUB_OUTPUT"
265+
echo "docker/model-runner:$RELEASE_TAG-musa" >> "$GITHUB_OUTPUT"
266+
echo "docker/model-runner:latest-musa" >> "$GITHUB_OUTPUT"
267+
echo 'EOF' >> "$GITHUB_OUTPUT"
268+
echo "openvino<<EOF" >> "$GITHUB_OUTPUT"
269+
echo "docker/model-runner:$RELEASE_TAG-openvino" >> "$GITHUB_OUTPUT"
270+
echo "docker/model-runner:latest-openvino" >> "$GITHUB_OUTPUT"
271+
echo 'EOF' >> "$GITHUB_OUTPUT"
264272
echo "rocm<<EOF" >> "$GITHUB_OUTPUT"
265273
echo "docker/model-runner:$RELEASE_TAG-rocm" >> "$GITHUB_OUTPUT"
266274
echo "docker/model-runner:latest-rocm" >> "$GITHUB_OUTPUT"
@@ -288,10 +296,16 @@ jobs:
288296
"$LLAMA_SERVER_VERSION" cuda)
289297
ROCM_IMAGE=$(bash scripts/resolve-llama-upstream-image.sh \
290298
"$LLAMA_SERVER_VERSION" rocm)
299+
MUSA_IMAGE=$(bash scripts/resolve-llama-upstream-image.sh \
300+
"$LLAMA_SERVER_VERSION" musa)
301+
OPENVINO_IMAGE=$(bash scripts/resolve-llama-upstream-image.sh \
302+
"$LLAMA_SERVER_VERSION" openvino)
291303
292304
echo "cpu=$CPU_IMAGE" >> "$GITHUB_OUTPUT"
293305
echo "cuda=$CUDA_IMAGE" >> "$GITHUB_OUTPUT"
294306
echo "rocm=$ROCM_IMAGE" >> "$GITHUB_OUTPUT"
307+
echo "musa=$MUSA_IMAGE" >> "$GITHUB_OUTPUT"
308+
echo "openvino=$OPENVINO_IMAGE" >> "$GITHUB_OUTPUT"
295309
296310
- name: Log in to DockerHub
297311
uses: docker/login-action@4907a6ddec9925e35a0a9e82d7399ccc52663121
@@ -388,6 +402,38 @@ jobs:
388402
sbom: true
389403
provenance: mode=max
390404
tags: ${{ steps.tags.outputs.rocm }}
405+
- name: Build MUSA image
406+
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f
407+
with:
408+
file: Dockerfile
409+
target: final-llamacpp
410+
platforms: linux/amd64
411+
build-args: |
412+
"LLAMA_SERVER_VERSION=${{ env.LLAMA_SERVER_VERSION }}"
413+
"LLAMA_SERVER_VARIANT=musa"
414+
"LLAMA_UPSTREAM_IMAGE=${{ steps.llama-images.outputs.musa }}"
415+
"VERSION=${{ env.RELEASE_TAG }}"
416+
push: true
417+
sbom: true
418+
provenance: mode=max
419+
tags: ${{ steps.tags.outputs.musa }}
420+
421+
- name: Build OpenVINO image
422+
uses: docker/build-push-action@bcafcacb16a39f128d818304e6c9c0c18556b85f
423+
with:
424+
file: Dockerfile
425+
target: final-llamacpp
426+
platforms: linux/amd64
427+
build-args: |
428+
"LLAMA_SERVER_VERSION=${{ env.LLAMA_SERVER_VERSION }}"
429+
"LLAMA_SERVER_VARIANT=openvino"
430+
"LLAMA_UPSTREAM_IMAGE=${{ steps.llama-images.outputs.openvino }}"
431+
"VERSION=${{ env.RELEASE_TAG }}"
432+
push: true
433+
sbom: true
434+
provenance: mode=max
435+
tags: ${{ steps.tags.outputs.openvino }}
436+
391437

392438
# ---------------------------------------------------------------------------
393439
# Release CLI for Docker Desktop — build, sign & push CLI + Desktop module image

Makefile

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ LLAMA_UPSTREAM_IMAGE ?= $(shell \
1010
DOCKER_IMAGE := docker/model-runner:latest
1111
DOCKER_IMAGE_VLLM := docker/model-runner:latest-vllm-cuda
1212
DOCKER_IMAGE_SGLANG := docker/model-runner:latest-sglang
13+
DOCKER_IMAGE_MUSA := docker/model-runner:latest-musa
14+
DOCKER_IMAGE_OPENVINO := docker/model-runner:latest-openvino
1315
DOCKER_TARGET ?= final-llamacpp
1416
PORT := 8080
1517
LLAMA_ARGS ?=
@@ -19,7 +21,7 @@ define check-llama-image
1921
$(if $(LLAMA_UPSTREAM_IMAGE),,$(error Failed to resolve llama.cpp upstream image. Check LLAMA_SERVER_VERSION and LLAMA_SERVER_VARIANT or set LLAMA_UPSTREAM_IMAGE directly.))
2022
endef
2123

22-
ifeq ($(LLAMA_SERVER_VARIANT),rocm)
24+
ifneq (,$(filter $(LLAMA_SERVER_VARIANT),rocm musa openvino))
2325
DOCKER_BUILD_PLATFORMS := linux/amd64
2426
else
2527
DOCKER_BUILD_PLATFORMS := linux/amd64,linux/arm64
@@ -42,6 +44,7 @@ DOCKER_BUILD_COMMON_ARGS = \
4244
.PHONY: validate validate-versions validate-all lint help
4345
.PHONY: docker-build docker-build-multiplatform docker-run docker-run-impl
4446
.PHONY: docker-build-vllm docker-run-vllm docker-build-sglang docker-run-sglang
47+
.PHONY: docker-build-musa docker-run-musa docker-build-openvino docker-run-openvino
4548
.PHONY: test-docker-ce-installation
4649
.PHONY: vllm-metal-build vllm-metal-install vllm-metal-dev vllm-metal-clean
4750
.PHONY: diffusers-build diffusers-install diffusers-dev diffusers-clean
@@ -202,6 +205,28 @@ docker-build-sglang:
202205
docker-run-sglang: docker-build-sglang
203206
@$(MAKE) -s docker-run-impl DOCKER_IMAGE=$(DOCKER_IMAGE_SGLANG)
204207

208+
# Build MUSA Docker image
209+
docker-build-musa:
210+
@$(MAKE) docker-build \
211+
DOCKER_TARGET=final-llamacpp \
212+
DOCKER_IMAGE=$(DOCKER_IMAGE_MUSA) \
213+
LLAMA_SERVER_VARIANT=musa
214+
215+
# Run MUSA Docker container with TCP port access and mounted model storage
216+
docker-run-musa: docker-build-musa
217+
@$(MAKE) -s docker-run-impl DOCKER_IMAGE=$(DOCKER_IMAGE_MUSA)
218+
219+
# Build OpenVINO Docker image
220+
docker-build-openvino:
221+
@$(MAKE) docker-build \
222+
DOCKER_TARGET=final-llamacpp \
223+
DOCKER_IMAGE=$(DOCKER_IMAGE_OPENVINO) \
224+
LLAMA_SERVER_VARIANT=openvino
225+
226+
# Run OpenVINO Docker container with TCP port access and mounted model storage
227+
docker-run-openvino: docker-build-openvino
228+
@$(MAKE) -s docker-run-impl DOCKER_IMAGE=$(DOCKER_IMAGE_OPENVINO)
229+
205230
# Common implementation for running Docker container
206231
docker-run-impl:
207232
@echo ""
@@ -381,6 +406,10 @@ help:
381406
@echo " docker-run-vllm - Run vLLM Docker container"
382407
@echo " docker-build-sglang - Build SGLang Docker image"
383408
@echo " docker-run-sglang - Run SGLang Docker container"
409+
@echo " docker-build-musa - Build MUSA Docker image"
410+
@echo " docker-run-musa - Run MUSA Docker container"
411+
@echo " docker-build-openvino - Build OpenVINO Docker image"
412+
@echo " docker-run-openvino - Run OpenVINO Docker container"
384413
@echo " vllm-metal-build - Build vllm-metal tarball locally (macOS ARM64)"
385414
@echo " vllm-metal-install - Install vllm-metal from local tarball"
386415
@echo " vllm-metal-dev - Install vllm-metal from local source (editable)"
@@ -394,7 +423,7 @@ help:
394423
@echo "Backend configuration options:"
395424
@echo " LLAMA_ARGS - Arguments for llama.cpp (e.g., \"--verbose --jinja -ngl 999 --ctx-size 2048\")"
396425
@echo " LLAMA_SERVER_VERSION - Upstream llama.cpp version (latest or bNNNN)"
397-
@echo " LLAMA_SERVER_VARIANT - Linux backend flavor (cpu, cuda, or rocm)"
426+
@echo " LLAMA_SERVER_VARIANT - Linux backend flavor (cpu, cuda, musa, openvino, or rocm)"
398427
@echo " LLAMA_UPSTREAM_IMAGE - Override the resolved upstream image directly"
399428
@echo " LOCAL_LLAMA - Use local llama.cpp build from llamacpp/install/bin (set to 1 to enable)"
400429
@echo ""

scripts/resolve-llama-upstream-image.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ Supported versions:
3434
Supported variants:
3535
- cpu
3636
- cuda
37+
- musa
38+
- openvino
3739
- rocm
3840
EOF
3941
exit 1
@@ -50,6 +52,12 @@ resolve_tag_base() {
5052
cuda)
5153
printf '%s\n' 'server-cuda13'
5254
;;
55+
musa)
56+
printf '%s\n' 'server-musa'
57+
;;
58+
openvino)
59+
printf '%s\n' 'server-openvino'
60+
;;
5361
rocm)
5462
printf '%s\n' 'server-rocm'
5563
;;

0 commit comments

Comments
 (0)