docker-build
Build a CUDA 13.0 or CUDA 12.8 LMDeploy Docker image and push it to the inner registry.
来源信息
- 仓库
- InternLM/lmdeploy
- 最近来源活动
- 2026年8月10日 10:47
- 检测到的 SKILL.md 语言
- 英语
- 星标
- 8,103
- 分支
- 763
安装方式
默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。
检查来源文件
决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。
正在显示 SKILL.md
SKILL.md
来源说明 · 只读预览- name
- docker-build
- description
- Build a CUDA 13.0 or CUDA 12.8 LMDeploy Docker image and push it to the inner registry.
- disable-model-invocation
- true
# Docker Build & Push
Build an LMDeploy Docker image and push it to the inner registry.
## Prerequisites
Before starting, verify all three environment variables are set:
```bash
echo $LMDEPLOY_REGISTRY # inner registry server address
echo $REGISTRY_USER # registry login username
test -n "$REGISTRY_PASSWORD" && echo "<set>" || echo "<missing>" # registry login password
```
If any are missing, stop and tell the user to set them before proceeding.
## 1. Select CUDA version
Ask the user which public CUDA image variant to build:
- `cu13.0` (default) — builds from the canonical `cu130` Docker stages
- `cu12.8` — builds from the canonical `cu128` Docker stages
Set the public tag suffix and corresponding Docker build target:
```bash
CUDA_TAG_SUFFIX=${CUDA_TAG_SUFFIX:-cu13.0}
case "${CUDA_TAG_SUFFIX}" in
cu13.0) CUDA_BUILD_TARGET=cu130 ;;
cu12.8) CUDA_BUILD_TARGET=cu128 ;;
*) echo "Unsupported CUDA image variant: ${CUDA_TAG_SUFFIX}" >&2; exit 1 ;;
esac
```
Do not pass `cu13.0` or `cu12.8` directly to `docker/Dockerfile`. Its
canonical stage names are `cu130` and `cu128`.
## 2. Determine image tag
```bash
BRANCH=$(git branch --show-current | sed 's/[^a-zA-Z0-9._-]/-/g')
SHA=$(git rev-parse --short=7 HEAD)
TAG="${BRANCH}-${SHA}-${CUDA_TAG_SUFFIX}"
IMAGE="${LMDEPLOY_REGISTRY}/ailab-puyu-puyu_gpu/lmdeploy-dev:${TAG}"
```
Print the computed image name so the user can confirm.
## 3. Build
Ask the user which build mode:
- **patch** (default) — uses `docker/Dockerfile_patch`, fast overlay on existing image
- **full** — uses `docker/Dockerfile`, full multi-stage build from scratch
### Patch build (default)
```bash
BASE_IMAGE=${BASE_IMAGE:-openmmlab/lmdeploy:latest-${CUDA_TAG_SUFFIX}}
docker build -f docker/Dockerfile_patch \
--build-arg BASE_IMAGE="${BASE_IMAGE}" \
--build-arg BACKEND=pytorch \
--build-arg http_proxy=${http_proxy:-} \
--build-arg https_proxy=${https_proxy:-} \
--build-arg no_proxy=${no_proxy:-} \
-t "${IMAGE}" \
.
```
User can override:
- `BASE_IMAGE` — defaults to `openmmlab/lmdeploy:latest-${CUDA_TAG_SUFFIX}`
- `BACKEND` — default `pytorch`; set to `turbomind` to include TurboMind C++ extension
### Full build
```bash
docker build -f docker/Dockerfile \
--build-arg CUDA_VERSION="${CUDA_BUILD_TARGET}" \
--build-arg http_proxy=${http_proxy:-} \
--build-arg https_proxy=${https_proxy:-} \
--build-arg no_proxy=${no_proxy:-} \
-t "${IMAGE}" \
.
```
`CUDA_BUILD_TARGET` must be the canonical target mapped from the selected
public CUDA variant.
### Verify
```bash
docker images "${IMAGE}"
```
## 4. Push
Skip this step if the user only wants a local build.
### Login
```bash
echo "${REGISTRY_PASSWORD}" | docker login "${LMDEPLOY_REGISTRY}" -u "${REGISTRY_USER}" --password-stdin
```
### Push
```bash
docker push "${IMAGE}"
```
Confirm success via exit code.
在 GitHub 查看