Container image sglang:26.02-py3 includes torchvision and it is linked against libnvjpeg.so.13, which is not included in the container image.
dev@spark1:~/work/sglang-test$ docker run -it --rm nvcr.io/nvidia/sglang:26.02-py3
============
== SGLang ==
============
NVIDIA Release 26.02 (build 268515453)
SGLang Version 0.5.8+7d51a572
<snip>
root@04c346fd1a7f:/workspace# python -c 'import torchvision'
/usr/local/lib/python3.12/dist-packages/torchvision/io/image.py:14: UserWarning: Failed to load image Python extension: 'Could not load this library: /usr/local/lib/python3.12/dist-packages/torchvision/image.so'If you don't plan on using image functionality from `torchvision.io`, you can ignore this warning. Otherwise, there might be something wrong with your environment. Did you have `libjpeg` or `libpng` installed before building `torchvision` from source?
warn(
root@04c346fd1a7f:/workspace# ldd /usr/local/lib/python3.12/dist-packages/torchvision/image.so | grep libnvjpeg
libnvjpeg.so.13 => not found
root@04c346fd1a7f:/workspace# find / -name libnvjpeg.so.13
root@04c346fd1a7f:/workspace#
I can take the missing shared object from nvcr.io/nvidia/cuda:13.1.1-runtime-ubuntu24.04 and then it seems to work.
FROM nvcr.io/nvidia/cuda:13.1.1-runtime-ubuntu24.04 AS cuda_13.1.1-runtime
FROM nvcr.io/nvidia/sglang:26.02-py3
COPY --from=cuda_13.1.1-runtime /usr/local/cuda-13.1/targets/sbsa-linux/lib/libnvjpeg.so.13 /usr/local/nvidia/lib64/
If I build and run this container it seems to work:
root@38f90f2b8859:/workspace# python -c 'import torchvision'
root@38f90f2b8859:/workspace# ldd /usr/local/lib/python3.12/dist-packages/torchvision/image.so | grep libnvjpeg
libnvjpeg.so.13 => /usr/local/nvidia/lib64/libnvjpeg.so.13 (0x0000e7f266fd0000)
/usr/local/nvidia/lib64/ might not be the best location, but it was included in LD_LIBRARY_PATH, which I used it here.
Is it indeed missing, or am I missing something?