SGLang 镜像 Dockerfile
如果出现以下情况,我们推荐您自己构建镜像:
- 环境不匹配:平台提供的镜像不满足您特定的软件版本(如框架、库)组合。
- 访问受限:您访问外部 Docker Hub 等公共仓库不方便或受限。
说明
本文包含的 Dockerfile 可用于镜像中心基于 Dockerfile 构建镜像,或直接在开发机中构建镜像(使用 docker build/docker buildx build)。
- 基于 Ubuntu 22.04
- 安装 CUDA 12.9.1
- 安装 cuDNN 9.x
- 安装 SGLang 0.5.5;如需安装其他版本,可更改版本号
Dockerfile 1
以下 Dockerfile 要求预先构建自定义系统级 CUDA 镜像。
- 先参考 CUDA + cudnn9.x 构建系统级 CUDA 镜像。
- 然后将其作为基础镜像(可推送至租户镜像中心),构建其他依赖系统级 CUDA 的应用镜像,可大幅节约构建时间。
dockerfile
# 推荐基于自定义 cuda 镜像构建 sglang 镜像
# FROM YOUR_CUSTOM_CUDA_IMAGE
# 设置 uv 使用清华镜像源
ENV UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
# 安装Python包
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir uv && \
uv pip install --system --verbose --no-cache \
"sglang==0.5.5" --prerelease=allow && \
uv cache clean && \
rm -rf ~/.cache/pipDockerfile 2
以下 Dockerfile 一次性安装系统级 CUDA、cudnn、SGLang 及其依赖的 Python 包,耗时较长,适用于在开发机内部使用 docker 命令构建镜像。如果在镜像中心使用该 Dockerfile 构建镜像,构建时间有可能超过 1 小时限制,导致构建失败。
dockerfile
FROM cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429
# 设置环境变量
# DEBIAN_FRONTEND=noninteractive 防止安装过程中的交互式提示
# PATH 添加CUDA可执行文件路径
# LD_LIBRARY_PATH 添加CUDA库文件路径
# CUDA_HOME 设置CUDA根目录
ENV PATH=/usr/local/cuda/bin:/usr/local/cuda-12.9/bin${PATH:+:${PATH}} \
LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-12.9/lib64:/usr/lib/x86_64-linux-gnu${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} \
CUDA_HOME=/usr/local/cuda \
CPATH=/usr/include${CPATH:+:${CPATH}} \
LIBRARY_PATH=/usr/lib/x86_64-linux-gnu${LIBRARY_PATH:+:${LIBRARY_PATH}}
# 安装CUDA并配置系统环境
# 1. 更新apt并安装必要工具
# 2. 清理apt缓存减小镜像体积
# 3. 下载CUDA安装包
# 4. 静默安装CUDA工具包(请勿安装 driver)
# 5. 配置动态链接库搜索路径
# 6. 更新动态链接库缓存
# 7. 清理安装包
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y wget build-essential \
&& rm -rf /var/lib/apt/lists/* \
&& wget https://developer.download.nvidia.com/compute/cuda/12.9.1/local_installers/cuda_12.9.1_575.57.08_linux.run \
&& sh cuda_12.9.1_575.57.08_linux.run --toolkit --silent --override \
&& echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf \
&& echo '/usr/local/cuda-12.9/lib64' >> /etc/ld.so.conf \
&& ldconfig \
&& rm cuda_12.9.1_575.57.08_linux.run
# 安装cuDNN并配置环境
# 1. 下载并安装NVIDIA CUDA仓库公钥
# 2. 更新apt源
# 3. 安装cuDNN
# 4. 配置额外的库路径
# 5. 更新动态链接库缓存
# 6. 清理安装包和apt缓存
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb \
&& dpkg -i cuda-keyring_1.1-1_all.deb \
&& apt-get update \
&& apt-get install -y cudnn-cuda-12 \
&& echo '/usr/lib/x86_64-linux-gnu' >> /etc/ld.so.conf \
&& ldconfig \
&& rm cuda-keyring_1.1-1_all.deb \
&& rm -rf /var/lib/apt/lists/*
# 设置 uv 使用清华镜像源
ENV UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
# 安装Python包
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir uv && \
uv pip install --system --verbose --no-cache \
"sglang==0.5.5" --prerelease=allow && \
uv cache clean && \
rm -rf ~/.cache/pip