Skip to content

Commit f2769d8

Browse files
chore: split frontend + runtime launch message to accurately represent container purpose (#4537)
Signed-off-by: Tushar Sharma <tusharma@nvidia.com> Co-authored-by: Harrison Saturley-Hall <hsaturleyhal@nvidia.com>
1 parent b7667c4 commit f2769d8

File tree

7 files changed

+72
-17
lines changed

7 files changed

+72
-17
lines changed

container/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ RUN uv pip install \
421421
&& UV_GIT_LFS=1 uv pip install --no-cache .
422422

423423
# Setup launch banner in common directory accessible to all users
424-
RUN --mount=type=bind,source=./container/launch_message.txt,target=/opt/dynamo/launch_message.txt \
424+
RUN --mount=type=bind,source=./container/launch_message/runtime.txt,target=/opt/dynamo/launch_message.txt \
425425
sed '/^#\s/d' /opt/dynamo/launch_message.txt > /opt/dynamo/.launch_screen
426426

427427
# Setup environment for all users

container/Dockerfile.frontend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ ENV DYNAMO_HOME=/opt/dynamo
4040
WORKDIR /
4141
COPY --chown=dynamo: --from=epp /epp /epp
4242

43-
COPY --chown=dynamo: container/launch_message.txt /opt/dynamo/.launch_screen
43+
COPY --chown=dynamo: container/launch_message/frontend.txt /opt/dynamo/.launch_screen
4444
# Copy tests, benchmarks, deploy and components with correct ownership
4545
COPY --chown=dynamo: tests /workspace/tests
4646
COPY --chown=dynamo: examples /workspace/examples

container/Dockerfile.sglang

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -362,10 +362,9 @@ RUN --mount=type=bind,source=./container/deps/requirements.txt,target=/tmp/requi
362362

363363
## Copy attribution files and launch banner with correct ownership
364364
COPY --chown=dynamo: ATTRIBUTION* LICENSE /workspace/
365-
COPY --chown=dynamo: container/launch_message.txt /workspace/launch_message.txt
366365

367366
# Setup launch banner in common directory accessible to all users
368-
RUN --mount=type=bind,source=./container/launch_message.txt,target=/opt/dynamo/launch_message.txt \
367+
RUN --mount=type=bind,source=./container/launch_message/runtime.txt,target=/opt/dynamo/launch_message.txt \
369368
sed '/^#\s/d' /opt/dynamo/launch_message.txt > /opt/dynamo/.launch_screen
370369

371370
# Setup environment for all users

container/Dockerfile.trtllm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ COPY --chown=dynamo: recipes/ /workspace/recipes/
336336
COPY --chown=dynamo: ATTRIBUTION* LICENSE /workspace/
337337

338338
# Setup launch banner in common directory accessible to all users
339-
RUN --mount=type=bind,source=./container/launch_message.txt,target=/opt/dynamo/launch_message.txt \
339+
RUN --mount=type=bind,source=./container/launch_message/runtime.txt,target=/opt/dynamo/launch_message.txt \
340340
sed '/^#\s/d' /opt/dynamo/launch_message.txt > /opt/dynamo/.launch_screen
341341

342342
# Setup environment for all users

container/Dockerfile.vllm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ COPY --chown=dynamo: . /workspace/
296296
COPY --chown=dynamo: ATTRIBUTION* LICENSE /workspace/
297297

298298
# Setup launch banner in common directory accessible to all users
299-
RUN --mount=type=bind,source=./container/launch_message.txt,target=/opt/dynamo/launch_message.txt \
299+
RUN --mount=type=bind,source=./container/launch_message/runtime.txt,target=/opt/dynamo/launch_message.txt \
300300
sed '/^#\s/d' /opt/dynamo/launch_message.txt > /opt/dynamo/.launch_screen
301301

302302
# Setup environment for all users
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
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+
Dynamo: A Datacenter Scale Distributed Inference Serving Framework
36+
37+
This is a framework-less image designed to deploy and run CPU-bound Frontend
38+
components without requiring CUDA or backend engine dependencies (vllm/sglang).
39+
40+
The frontend container includes:
41+
- HTTP API service
42+
- Preprocessor
43+
- Router
44+
- Endpoint Picker (EPP) for Gateway API Inference Extension
45+
46+
Benefits:
47+
- Minimal dependencies for purely CPU-based processes
48+
- Fast deployment for integration testing on GPU-constrained clusters
49+
- Can spin up frontend with mock workers for rapid testing
50+
51+
Quick Start:
52+
53+
Start mocker with custom configuration:
54+
> python -m dynamo.mocker \
55+
--model-path TinyLlama/TinyLlama-1.1B-Chat-v1.0 \
56+
--num-gpu-blocks-override 8192 \
57+
--block-size 16 \
58+
--speedup-ratio 10.0 \
59+
--max-num-seqs 512 \
60+
--num-workers 4 \
61+
--enable-prefix-caching
62+
63+
Start frontend server:
64+
> python -m dynamo.frontend --http-port 8000
65+
66+
Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,5 @@
11
# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
22
# SPDX-License-Identifier: Apache-2.0
3-
# Licensed under the Apache License, Version 2.0 (the "License");
4-
# you may not use this file except in compliance with the License.
5-
# You may obtain a copy of the License at
6-
# http://www.apache.org/licenses/LICENSE-2.0
7-
# Unless required by applicable law or agreed to in writing, software
8-
# distributed under the License is distributed on an "AS IS" BASIS,
9-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10-
# See the License for the specific language governing permissions and
11-
# limitations under the License.
123
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
134
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
145
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@ -47,9 +38,8 @@ This is a minimum runtime container for interacting with Dynamo via our CLI
4738
tools.
4839

4940
Try the following to begin interacting with a model:
50-
> dynamo --help
5141
> python -m dynamo.frontend [--http-port 8000]
52-
> python -m dynamo.vllm --model Qwen/Qwen2.5-3B-Instruct
42+
> python -m dynamo.{vllm,sglang,trtllm} --model Qwen/Qwen2.5-3B-Instruct
5343

5444
To run more complete deployment examples, instances of etcd and nats need to be
5545
accessible within the container. This is generally done by connecting to

0 commit comments

Comments
 (0)