Prhub

#26895 fix : add sglang script as entry bin for runtime docker image

原始 PR 作者 WingEdge777 合并时间 2026-06-01 15:22 文件变更 1 提交数 1 评论 2 代码增减 +3 / -0

执行摘要

修复运行时 Docker 镜像缺少 sglang 入口脚本

根据 issue #26897 报告,运行时 Docker 镜像中执行 sglang serve 会报错 bash: sglang: command not found。PR body 明确指出 /usr/local/bin/sglang 文件缺失,导致 CLI 行为异常。本 PR 旨在恢复运行时镜像中 sglang 命令的可用性。

该 PR 是标准的基础设施 bugfix,改动力度小,风险低。建议合入以修复用户端体验。无需特别关注设计决策。

讨论亮点

该 PR 无 review 评论。PR body 中作者简要说明了修改目的,CI 状态显示 PR Test 通过,额外测试有失败但非本 PR 引入。

实现拆解

  1. 修改 Dockerfile:在 docker/Dockerfile 的第 788 行(位于 COPY --from=framework_final /usr/local/bin/sgl-model-gateway /usr/local/bin/sgl-model-gateway 之后)插入一行 COPY --from=framework_final /usr/local/bin/sglang /usr/local/bin/sglang
  2. 构建阶段复用:利用已有的 framework_final 构建阶段中编译好的 sglang 二进制文件,将其复制到运行时镜像的对应路径,确保二进制依赖完整。
  3. 单行变更:仅增加 3 行(含空行和注释),无其他文件或逻辑改动。
文件 模块 状态 重要度
docker/Dockerfile 部署脚本 modified 2.88

关键源码片段

docker/Dockerfile infrastructure

核心变更文件,在运行时镜像构建阶段添加了 sglang 二进制文件的复制指令,修复了 CLI 不可用的问题。

# docker/Dockerfile 片段(在运行时镜像构建阶段)# ... 已有 COPY 命令 ...# Copy sglang binary
COPY --from=framework_final /usr/local/bin/sglang /usr/local/bin/sglang
​
# Copy py-spy binary
COPY --from=framework_final /usr/local/bin/py-spy /usr/local/bin/py-spy
# ... 后续配置 ...

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低:仅增加一行 COPY 指令,复用已存在的构建产物。若 framework_final 阶段未生成 /usr/local/bin/sglang 文件,则构建会失败,但该文件在项目中通常是存在的(参见其他 COPY 指令)。不会影响现有功能或引入回归问题。

  • 用户:修复了运行时 Docker 镜像中 sglang 命令不可用的问题,用户可以正常使用 sglang serve 等 CLI 命令。
  • 系统/团队:无影响,属于部署脚本的修复。
  • 影响程度:小范围,仅针对 Docker 构建流程。
低风险

关联 Issue

#26897 [Bug] runtime-image don't have sglang bin cause "bash: sglang: command not found"

完整报告

参与讨论