-
Notifications
You must be signed in to change notification settings - Fork 3.4k
[Docker] Add docker file for SGL Router #6915
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,76 @@ | ||
| ######################## BASE IMAGE ########################## | ||
| FROM ubuntu:24.04 AS base | ||
|
|
||
| ARG PYTHON_VERSION=3.12 | ||
|
|
||
| # set the environment variables | ||
| ENV PATH="/root/.local/bin:${PATH}" | ||
| ENV DEBIAN_FRONTEND=noninteractive | ||
|
|
||
| # uv environment variables | ||
| ENV UV_HTTP_TIMEOUT=500 | ||
| ENV VIRTUAL_ENV="/opt/venv" | ||
| ENV UV_PYTHON_INSTALL_DIR=/opt/uv/python | ||
| ENV UV_INDEX_STRATEGY="unsafe-best-match" | ||
| ENV UV_LINK_MODE="copy" | ||
| ENV PATH="$VIRTUAL_ENV/bin:$PATH" | ||
|
|
||
|
|
||
| # install dependencies | ||
| RUN echo 'tzdata tzdata/Areas select America' | debconf-set-selections \ | ||
| && echo 'tzdata tzdata/Zones/America select Los_Angeles' | debconf-set-selections \ | ||
| && apt update -y \ | ||
| && apt install -y curl \ | ||
| && rm -rf /var/lib/apt/lists/* \ | ||
| && apt clean | ||
|
|
||
| # install uv | ||
| RUN curl -LsSf https://astral.sh/uv/install.sh | sh | ||
|
|
||
| # install python | ||
| RUN uv venv --python ${PYTHON_VERSION} --seed ${VIRTUAL_ENV} | ||
|
|
||
| ######################### BUILD IMAGE ######################### | ||
| FROM base AS build-image | ||
|
|
||
| # set the environment variables | ||
| ENV PATH="/root/.cargo/bin:${PATH}" | ||
|
|
||
| # install dependencies | ||
| RUN apt update -y \ | ||
| && apt install -y git build-essential libssl-dev pkg-config \ | ||
| && rm -rf /var/lib/apt/lists/* \ | ||
| && apt clean | ||
|
|
||
| # install rustup from rustup.rs | ||
| RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y \ | ||
| && rustc --version && cargo --version | ||
|
|
||
| # pull the github repository | ||
| RUN cd /opt \ | ||
| && git clone --depth=1 https://github.com/sgl-project/sglang.git \ | ||
| && cd /opt/sglang \ | ||
| && git checkout main | ||
YouNeedCryDear marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| # working directory | ||
| WORKDIR /opt/sglang/sgl-router | ||
|
|
||
| # build the rust dependencies | ||
| RUN cargo build \ | ||
YouNeedCryDear marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| && uv build \ | ||
| && rm -rf /root/.cache | ||
|
|
||
| ######################### ROUTER IMAGE ######################### | ||
| FROM base AS router-image | ||
|
|
||
| # Copy the built package from the build image | ||
| COPY --from=build-image /opt/sglang/sgl-router/dist/*.whl dist/ | ||
|
|
||
| # Build the package and install | ||
| RUN uv pip install --force-reinstall dist/*.whl | ||
|
|
||
| # Clean up unnecessary files to reduce the image size | ||
| RUN rm -rf /root/.cache | ||
YouNeedCryDear marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| # Set the entrypoint to the main command | ||
| ENTRYPOINT ["python3", "-m", "sglang_router.launch_router"] | ||
Uh oh!
There was an error while loading. Please reload this page.