This repository serves as the Docker image pack center for GPUStack Runner. It provides a collection of Dockerfiles to build images for various inference services across different accelerated backends.
The pack skeleton is organized by backend:
pack
├── {BACKEND 1}
│ └── Dockerfile
├── {BACKEND 2}
│ └── Dockerfile
├── {BACKEND 3}
│ └── Dockerfile
├── ...
│ └── Dockerfile
└── {BACKEND N}
└── Dockerfile
Each Dockerfile follows these conventions:
- Begin with comments describing the package logic in steps and usage of build arguments (
ARG
s). - Use
ARG
for all required and optional build arguments. If a required argument is unused, mark it as(PLACEHOLDER)
. - Use heredoc syntax for
RUN
commands to improve readability.
# Describe package logic and ARG usage.
#
ARG PYTHON_VERSION=... # REQUIRED
ARG CMAKE_MAX_JOBS=... # REQUIRED
ARG {OTHERS} # OPTIONAL
ARG {BACKEND}_VERSION=... # REQUIRED
ARG {BACKEND}_ARCHS=... # REQUIRED
ARG {BACKEND}_{OTHERS}=... # OPTIONAL
ARG {SERVICE}_BASE_IMAGE=... # REQUIRED
ARG {SERVICE}_VERSION=... # REQUIRED
ARG {SERVICE}_{OTHERS}=... # OPTIONAL
ARG {SERVICE}_{FRAMEWORK}_VERSION=... # REQUIRED
ARG {SERVICE}_{FRAMEWORK}_{OTHERS}=... # OPTIONAL
# Stage Bake Runtime
FROM {BACKEND DEVEL IMAGE} AS runtime
SHELL ["/bin/bash", "-eo", "pipefail", "-c"]
ARG TARGETPLATFORM
ARG TARGETOS
ARG TARGETARCH
ARG ...
RUN <<EOF
# TODO: install runtime dependencies
EOF
# Stage Install Service
FROM {BACKEND}_BASE_IMAGE AS {service}
SHELL ["/bin/bash", "-eo", "pipefail", "-c"]
ARG TARGETPLATFORM
ARG TARGETOS
ARG TARGETARCH
ARG ...
RUN <<EOF
# TODO: install service and dependencies
EOF
WORKDIR /
ENTRYPOINT [ "tini", "--" ]
The Docker image naming convention is as follows:
- Multi-architecture image names:
{NAMESPACE}/{REPOSITORY}:{TAG}
. - Single-architecture image tags:
{BACKEND}{BACKEND_VERSION%.*}[-{BACKEND_VARIANT}]-{SERVICE}{SERVICE_VERSION}-{OS}-{ARCH}
. - Multi-architecture image tags:
{BACKEND}{BACKEND_VERSION%.*}[-{BACKEND_VARIANT}]-{SERVICE}{SERVICE_VERSION}[-dev]
. - All names adn tags must be lowercase.
- NAMESPACE:
gpustack
- REPOSITORY:
runner
Accelerated Backend | OS/ARCH | Inference Service | Single-Arch Image Name | Multi-Arch Image Name |
---|---|---|---|---|
Ascend CANN 910b | linux/amd64 | vLLM | gpustack/runner:cann8.1-910b-vllm0.9.2-linux-amd64 |
gpustack/runner:cann8.1-910b-vllm0.9.2 |
Ascend CANN 910b | linux/arm64 | vLLM | gpustack/runner:cann8.1-910b-vllm0.9.2-linux-arm64 |
gpustack/runner:cann8.1-910b-vllm0.9.2 |
NVIDIA CUDA 12.8 | linux/amd64 | vLLM | gpustack/runner:cuda12.8-910b-vllm0.9.2-linux-amd64 |
gpustack/runner:cuda12.8-910b-vllm0.9.2 |
NVIDIA CUDA 12.8 | linux/arm64 | vLLM | gpustack/runner:cuda12.8-910b-vllm0.9.2-linux-arm64 |
gpustack/runner:cuda12.8-910b-vllm0.9.2 |
- Build single architecture images for OS/ARCH, e.g.
gpustack/runner:cann8.1-910b-vllm0.9.2-linux-amd64
. - Combine single-architecture images into a multiple architectures image, e.g.
gpustack/runner:cann8.1-910b-vllm0.9.2-dev
. - After testing, rename the multi-architecture image to the final tag, e.g.
gpustack/runner:cann8.1-910b-vllm0.9.2
.
Copyright (c) 2025 The GPUStack authors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at LICENSE file for details.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.