FROM python:3.12-slim@sha256:78387bc3881b8273120a12ebe6c1ab22b018ccc2c9adf565ae1ac9b536e184ea
# multi-arch OCI index digest (linux/amd64 + linux/arm64)

ARG PYTHON_BASE_DIGEST=sha256:78387bc3881b8273120a12ebe6c1ab22b018ccc2c9adf565ae1ac9b536e184ea
ARG SGLANG_REF=v0.5.20
ARG SGLANG_COMMIT=94602c9c2b7cbdb8efd5c52802dac6a1c180089e
ARG AIC_PIN=aiconfigurator==0.10.0
ARG IMAGE_PLATFORM

LABEL swo.bench.sglang.ref="${SGLANG_REF}"
LABEL swo.bench.sglang.aic_pin="${AIC_PIN}"
LABEL swo.bench.sglang.base_digest="${PYTHON_BASE_DIGEST}"
LABEL swo.bench.sglang.platform="${IMAGE_PLATFORM}"

RUN apt-get update \
    && apt-get install -y --no-install-recommends git ca-certificates \
    && rm -rf /var/lib/apt/lists/*

RUN git clone --depth 1 --branch ${SGLANG_REF} https://github.com/sgl-project/sglang /opt/sglang \
    && test "$(git -C /opt/sglang rev-parse HEAD)" = "${SGLANG_COMMIT}"

RUN SGLANG_BUILD_RUST_EXTS=none pip install --no-cache-dir /opt/sglang/python
RUN pip install --no-cache-dir -e /opt/sglang/tools/sglang-simulator
RUN pip install --no-cache-dir --no-deps ${AIC_PIN}

ENV PYTHONPATH="/opt/sglang/tools/sglang-simulator/src:/opt/sglang/python"
ENV SGLANG_USE_CPU_ENGINE=1
ENV CUDA_VISIBLE_DEVICES=""

ARG HARNESS_DIGEST
LABEL swo.bench.sglang.harness="${HARNESS_DIGEST}"
COPY harness.py cpu_kernel_shim.py sitecustomize.py /opt/swo-bench/

WORKDIR /opt/sglang
