ms-swift Docker 镜像打包方法
2026-01-10
ms-swift
00

目录

Docker 镜像构建指南
📁 核心文件结构
🏗️ 构建类继承关系
⚙️ SwiftImageBuilder 默认配置
🚀 构建命令
准备工作
方式1: 仅生成 Dockerfile (推荐先测试)
方式2: 实际构建并推送
📊 可用参数列表
🏷️ 生成的镜像名格式
🔄 构建流程简述
1. 基础环境构建 (Dockerfile.extra_install)
2. 主构建流程 (Dockerfile.ubuntu)
3. Swift 特有组件 (Dockerfile.ubuntu:78-88)
🛠️ 手动构建流程 (灵活控制)
步骤1: 生成 Dockerfile
步骤2: 查看/修改 Dockerfile
步骤3: 手动构建镜像
步骤4: 推送镜像

Docker 镜像构建指南

📁 核心文件结构

展开代码
/data/xiedong/modelscope/docker/ ├── build_image.py # 主构建脚本 ├── Dockerfile.ubuntu # 主 Dockerfile 模板 ├── Dockerfile.extra_install # Python 和基础依赖安装 ├── install.sh # PyTorch/vLLM/FlashAttn 安装脚本 └── rcfiles/ # 配置文件资源

🏗️ 构建类继承关系

展开代码
Builder (基类) └── LLMImageBuilder └── SwiftImageBuilder (第347行) ← 当前使用的构建器

⚙️ SwiftImageBuilder 默认配置

位于 build_image.py:349-364

python
展开代码
base_image = 'nvidia/cuda:12.8.1-cudnn-devel-ubuntu22.04' cuda_version = '12.8.1' torch_version = '2.9.0' vllm_version = '0.13.0' lmdeploy_version = '0.10.1' flashattn_version = '2.8.3'

🚀 构建命令

准备工作

bash
展开代码
cd /data/xiedong/modelscope # 必须设置镜像仓库地址 export DOCKER_REGISTRY="你的镜像仓库地址"

方式1: 仅生成 Dockerfile (推荐先测试)

bash
展开代码
python docker/build_image.py \ --image_type swift \ --python_version 3.11.9 \ --modelscope_version 1.33.0 \ --swift_branch main \ --dry_run 1

✅ 生成的 Dockerfile 在当前目录: ./Dockerfile

方式2: 实际构建并推送

bash
展开代码
python docker/build_image.py \ --image_type swift \ --python_version 3.11.9 \ --modelscope_version 1.33.0 \ --swift_branch main \ --dry_run 0

📊 可用参数列表

参数说明默认值
--image_type镜像类型swift
--python_versionPython 版本3.10.14
--ubuntu_versionUbuntu 版本22.04
--torch_versionPyTorch 版本2.9.0
--cuda_versionCUDA 版本12.8.1
--vllm_versionvLLM 版本0.13.0
--flashattn_versionFlashAttn 版本2.8.3
--swift_branchms-swift git 分支main
--modelscope_branchmodelscope git 分支master
--modelscope_version镜像 tag 中的版本号9.99.0
--dry_run1=只生成Dockerfile, 0=实际构建0

🏷️ 生成的镜像名格式

展开代码
{DOCKER_REGISTRY}:ubuntu22.04-cuda12.8.1-py311-torch2.9.0-1.33.0-swift-test

🔄 构建流程简述

1. 基础环境构建 (Dockerfile.extra_install)

  • 从 NVIDIA CUDA 基础镜像开始
  • 编译安装指定版本的 Python

2. 主构建流程 (Dockerfile.ubuntu)

  • 安装 ms-swift (pip install .[llm])
  • 安装 modelscope
  • 执行 install.sh 安装 PyTorch/vLLM/FlashAttn

3. Swift 特有组件 (Dockerfile.ubuntu:78-88)

  • 安装 Megatron-LM、apex、transformer_engine
  • 克隆 Megatron-LM 到 /root/.cache/modelscope/_github/

🛠️ 手动构建流程 (灵活控制)

步骤1: 生成 Dockerfile

bash
展开代码
python docker/build_image.py --image_type swift --dry_run 1

步骤2: 查看/修改 Dockerfile

bash
展开代码
cat ./Dockerfile # 按需修改 Dockerfile

步骤3: 手动构建镜像

bash
展开代码
docker build -t my-swift-image:latest -f Dockerfile .

步骤4: 推送镜像

bash
展开代码
docker push my-swift-image:latest

💡 提示: 建议先使用 --dry_run 1 参数测试生成 Dockerfile,确认无误后再进行实际构建。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!