| FROM ubuntu:24.04 | |
| SHELL ["/bin/bash", "-c"] | |
| ARG SGLANG_REPO=https://github.com/sgl-project/sglang.git | |
| ARG VER_SGLANG=main | |
| RUN apt-get update && \ | |
| apt-get full-upgrade -y && \ | |
| DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ | |
| ca-certificates \ | |
| git \ | |
| curl \ | |
| wget \ | |
| vim \ | |
| gcc \ | |
| g++ \ | |
| make \ | |
| libsqlite3-dev \ | |
| google-perftools \ | |
| libtbb-dev \ | |
| libnuma-dev \ | |
| numactl | |
| WORKDIR /opt | |
| RUN curl -LsSf https://astral.sh/uv/install.sh | sh && \ | |
| source $HOME/.local/bin/env && \ | |
| uv venv --python 3.12 | |
| RUN echo -e '[[index]]\nname = "torch"\nurl = "https://download.pytorch.org/whl/cpu"\n\n[[index]]\nname = "torchvision"\nurl = "https://download.pytorch.org/whl/cpu"\n\n[[index]]\nname = "torchaudio"\nurl = "https://download.pytorch.org/whl/cpu"\n\n[[index]]\nname = "triton"\nurl = "https://download.pytorch.org/whl/cpu"' > .venv/uv.toml | |
| ENV UV_CONFIG_FILE=/opt/.venv/uv.toml | |
| WORKDIR /sgl-workspace | |
| RUN source $HOME/.local/bin/env && \ | |
| source /opt/.venv/bin/activate && \ | |
| git clone ${SGLANG_REPO} sglang && \ | |
| cd sglang && \ | |
| git checkout ${VER_SGLANG} && \ | |
| cd python && \ | |
| cp pyproject_cpu.toml pyproject.toml && \ | |
| uv pip install . && \ | |
| cd ../sgl-kernel && \ | |
| cp pyproject_cpu.toml pyproject.toml && \ | |
| uv pip install . | |
| ENV SGLANG_USE_CPU_ENGINE=1 | |
| ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libtcmalloc.so.4:/usr/lib/x86_64-linux-gnu/libtbbmalloc.so:/opt/.venv/lib/libiomp5.so | |
| RUN echo 'source /opt/.venv/bin/activate' >> /root/.bashrc | |
| WORKDIR /sgl-workspace/sglang | |