forked from ai-dynamo/dynamo
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile.dsv4.sglang.b200
More file actions
49 lines (34 loc) · 2.2 KB
/
Copy pathDockerfile.dsv4.sglang.b200
File metadata and controls
49 lines (34 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
ARG DYNAMO_SRC_IMAGE=dynamo:latest-sglang-runtime
# based on https://github.com/sgl-project/sglang/pull/23600/changes/6d0858d2a82e18b657c8140c329a336ab3673ff8
ARG DSV4_BASE_IMAGE=lmsysorg/sglang:deepseek-v4-blackwell@sha256:940f7652dd16b04e82ecc57c4dcb6a3ae7d7283bc38db1ce3c4aa6ae3685c4aa
FROM ${DYNAMO_SRC_IMAGE} AS dynamo_src
FROM ${DSV4_BASE_IMAGE}
ENV DEBIAN_FRONTEND=noninteractive
RUN pip uninstall -y black termplotlib \
&& apt-get update \
&& apt-get purge -y libx264-164 libx265-199 libde265-0 libavcodec60 libxvidcore4 \
&& apt list --upgradable 2>/dev/null | tail -n +2 | grep 'noble' | awk -F/ '{print $1}' | xargs -r apt-get install -y --only-upgrade \
&& rm -rf /var/lib/apt/lists/*
RUN python3 -m pip install --no-cache-dir --break-system-packages "distro>=1.7,<2"
COPY --from=dynamo_src /usr/bin/nats-server /usr/bin/nats-server
COPY --from=dynamo_src /usr/local/bin/etcd /usr/local/bin/etcd
ENV PATH=/usr/local/bin/etcd:${PATH}
COPY --from=dynamo_src /usr/lib/x86_64-linux-gnu/ucx /usr/lib/x86_64-linux-gnu/ucx
COPY --from=dynamo_src /usr/lib/x86_64-linux-gnu/libuc*.so* /usr/lib/x86_64-linux-gnu/
COPY --from=dynamo_src /usr/local/lib/python3.12/dist-packages/nixl* /usr/local/lib/python3.12/dist-packages/
COPY --from=dynamo_src /opt/dynamo/wheelhouse /opt/dynamo/wheelhouse
RUN pip install --no-cache-dir --force-reinstall --no-deps \
/opt/dynamo/wheelhouse/ai_dynamo_runtime*.whl \
/opt/dynamo/wheelhouse/ai_dynamo-*.whl && \
python3 -c "from dynamo._core import get_tool_parser_names; assert 'deepseek_v4' in get_tool_parser_names(), 'V4 parser missing!'; print('V4 parser verified')"
COPY --from=dynamo_src /workspace/components/src/dynamo /workspace/components/src/dynamo
COPY --from=dynamo_src /workspace/ATTRIBUTIONS-Python.md /workspace/ATTRIBUTIONS-Rust.md /workspace/ATTRIBUTIONS.md /workspace/
# Avoid /workspace/sglang shadowing the dynamo Python package.
ENV PYTHONPATH=/workspace/sglang/python:/workspace/components/src
ENV SGLANG_JIT_DEEPGEMM_PRECOMPILE=0 \
SGLANG_JIT_DEEPGEMM_FAST_WARMUP=1
WORKDIR /workspace
ENTRYPOINT []
CMD ["bash"]