| 123456789101112131415161718192021222324 |
- # syntax=docker/dockerfile:1.7
- # SparkRing shared stack (FujitsuPolycom/sparkring) as a sm121-managed image.
- #
- # The public image is published digest-only (no tags), so a raw pull leaves an
- # untagged image that (a) sm121's image-presence probe cannot match by tag and
- # (b) `docker image prune` reaps as dangling. Wrapping it in a thin FROM with
- # a local tag puts it under the normal sm121 build/sync flow: built once on a
- # build node, `docker save | ssh docker load` to the rest, checksum-label
- # stamped, and safe from prune.
- #
- # No stages, no layers: the entire runtime lives upstream of the FROM.
- ARG BASE_IMAGE
- FROM ${BASE_IMAGE}
- LABEL sm121.source="ghcr.io/fujitsupolycom/sparkring" sm121.digest="sha256:f25cdb6bf7df85754ea5c62445b139dac3143bc6e910a0442d681b6e63c31c4b"
- # The b12x loader JIT-compiles _storage.c with `-L/opt/cuda-13.3/lib64 -lcudart`,
- # but this CUDA 13 image ships libcudart only as pip nvidia/cu13/lib/libcudart.so.13
- # (no lib64 dir, no dev symlink) — the first serve attempt dies with
- # "ld: cannot find -lcudart". Bridge it, then pre-build the extension so the
- # runtime cache is baked into the image and serves never hit the JIT.
- RUN set -eux; \
- mkdir -p /opt/cuda-13.3/lib64; \
- ln -s /usr/local/lib/python3.12/dist-packages/nvidia/cu13/lib/libcudart.so.13 /opt/cuda-13.3/lib64/libcudart.so; \
- python3 -c "import b12x.loader._native as n; n.load(); print('b12x loader native pre-built')"
|