Dockerfile 2.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. # Arm64 sibling of the 0xSero pin (lmsysorg/sglang:dev-dsv41, linux/amd64
  2. # digest sha256:c4ca651192e57e91989b5176c3665148131b9a171e53861dee87f5e57cef25b5).
  3. # Pinned by digest: the dev-dsv41 tag moves (on 2026-09-24 it pointed at a different SGLang build,
  4. # da64c5cbb, which one node had pulled while the others ran this one). This is the arm64-capable
  5. # index every result in docs/ was measured on (image id 37939c26 on arm64). Keep BASE_IMAGE in
  6. # .env.example / .env.tp4.example / start.sh identical.
  7. FROM lmsysorg/sglang:dev-dsv41@sha256:3dbc313030a6ef2c5d7de8ecf48e9aece722694a82182cb618cc82b588816349
  8. WORKDIR /opt/dsv41
  9. COPY adapter /opt/dsv41/adapter
  10. RUN g++ -O2 -Wall -Wextra -Werror -std=c++17 -shared -fPIC -pthread \
  11. adapter/row_store.cpp -o adapter/librow_store.so
  12. COPY runtime/flash_mla_sm120.py /sgl-workspace/sglang/python/sglang/kernels/ops/attention/flash_mla_sm120.py
  13. COPY boot.py /opt/dsv41/boot.py
  14. COPY scripts /opt/dsv41/scripts
  15. COPY tests /opt/dsv41/tests
  16. COPY benchmarks /opt/dsv41/benchmarks
  17. RUN PYTHONPATH=/opt/dsv41/adapter python3 /opt/dsv41/tests/test_thinking_alias.py \
  18. && PYTHONPATH=/opt/dsv41/adapter python3 /opt/dsv41/tests/test_max_new_tokens.py \
  19. && PYTHONPATH=/opt/dsv41/adapter python3 /opt/dsv41/tests/test_loop_abort.py \
  20. && PYTHONPATH=/opt/dsv41/adapter python3 /opt/dsv41/tests/test_wo_a_w8.py \
  21. && PYTHONPATH=/opt/dsv41/adapter python3 /opt/dsv41/tests/test_draft_head_fp8.py \
  22. && PYTHONPATH=/opt/dsv41/adapter python3 /opt/dsv41/tests/test_draft_tau.py \
  23. && PYTHONPATH=/opt/dsv41/adapter python3 /opt/dsv41/tests/test_folded_fence.py \
  24. && PYTHONPATH=/opt/dsv41/adapter python3 /opt/dsv41/tests/test_autotune_keep.py
  25. ENV PYTHONPATH=/opt/dsv41/adapter \
  26. MODEL_PATH=/models/DeepSeek-V4.1-Flash \
  27. STATE_PATH=/state OFFLOAD_MODE=nvme DSV41_CACHE_GIB=16
  28. EXPOSE 8888
  29. # -S: skip site (the adapter's sitecustomize imports the engine, which takes >10 s on a
  30. # busy head and marked the container unhealthy during long prefills); health needs stdlib only.
  31. HEALTHCHECK --interval=30s --timeout=30s --start-period=30m --retries=3 \
  32. CMD ["python3", "-S", "/opt/dsv41/boot.py", "health"]
  33. ENTRYPOINT ["python3", "-u", "/opt/dsv41/boot.py"]
  34. CMD ["run"]