sglang.0.4.8.post1/Dockerfile

55 lines
3.0 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

###############################################################################
# Stage 0 ─ builder:CUDA 12.6.1 + nvcc/gcc,编译本地 sglang 源码
###############################################################################
ARG CUDA_VERSION=12.6.1
ARG CUINDEX=126 # 12.6.x ⇒ cu126
FROM nvidia/cuda:${CUDA_VERSION}-devel-ubuntu22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive PYTHONUNBUFFERED=1 LANG=C.UTF-8 LC_ALL=C.UTF-8
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 python3-pip python3-distutils build-essential git ca-certificates && \
python3 -m pip install --no-cache-dir --upgrade pip setuptools wheel
# ── ① 下载官方 PyTorch / TorchVision wheel ────────────────────────────────
RUN python3 -m pip download --no-deps \
--dest /tmp/wheels \
--index-url https://download.pytorch.org/whl/cu${CUINDEX} \
torch==2.7.1 torchvision==0.22.1
# ── ② 下载 flashinfer cu126 / torch-2.7 wheel(只下载,不安装)─────────────
RUN python3 -m pip download --no-deps \
--dest /tmp/wheels \
--find-links https://flashinfer.ai/whl/cu${CUINDEX}/torch2.7/flashinfer-python \
flashinfer-python
# ── ③ 安装前两步 wheel(为后面编译 sglang 做依赖)──────────────────────
RUN python3 -m pip install --no-cache-dir /tmp/wheels/torch-2.7.1+cu${CUINDEX}*.whl \
/tmp/wheels/torchvision-0.22.1+cu${CUINDEX}*.whl \
/tmp/wheels/flashinfer_python-*-cu${CUINDEX}_torch27*.whl
# ── ④ COPY 本地 sglang 源码并编译成 wheel ─────────────────────────────────
COPY ./sglang /sgl-workspace/sglang
WORKDIR /sgl-workspace/sglang/python
RUN python3 -m pip wheel '.[srt,openai]' --no-deps -w /tmp/wheels
###############################################################################
# Stage 1 ─ runtime:极简镜像,只离线安装 wheel
###############################################################################
ARG CUDA_VERSION=12.6.1
FROM nvidia/cuda:${CUDA_VERSION}-runtime-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive PYTHONUNBUFFERED=1 LANG=C.UTF-8 LC_ALL=C.UTF-8
RUN apt-get update && apt-get install -y --no-install-recommends \
python3 python3-pip python3-distutils ca-certificates && \
rm -rf /var/lib/apt/lists/* && \
python3 -m pip install --no-cache-dir --upgrade pip
# ── 把 builder 产出的所有 wheel(一共 4~5 个)拷贝进来并安装 ───────────
COPY --from=builder /tmp/wheels /tmp/wheels
RUN python3 -m pip install --no-cache-dir /tmp/wheels/* && rm -rf /tmp/wheels
# ── 仅打印帮助,CPU 机器也能跑 ─────────────────────────────────────────────
CMD ["python3", "-m", "sglang.launch_server", "--help"]