feat(images): add an image for GPU workloads (#4830)
* feat(images): add amd64-only sandbox-gpu image GPU-enabled sandbox built on vllm/vllm-openai with CUDA/ML tooling and the full-parity Python stack, published as daytonaio/sandbox-gpu. Pinned deps + digest-pinned base. Excluded from the multi-arch PR/production docker fan-out since it's amd64-only and GPU-oriented; dependabot tracks the base image. Signed-off-by: rovle <lovre.pesut@gmail.com> * refactor(images): build sandbox-gpu on the default sandbox image Switch sandbox-gpu to FROM daytonaio/sandbox (a superset of the default sandbox) plus the GPU stack: CUDA 13 toolkit, torch cu130, and vLLM with FlashInfer kernels pre-staged for fast cold start. The publish workflow now builds the GPU image after the sandbox image and pins it to that exact build by digest. Signed-off-by: rovle <lovre.pesut@gmail.com> * chore(images): pin sandbox-gpu GPU/ML deps for reproducible builds Also stop re-installing huggingface_hub: the base already ships it with hf-xet (a core dependency on x86_64), so listing it here only risked pinning the base's hub version back down. The HF_XET_HIGH_PERFORMANCE env it relied on isn't honored by the base's hub version, so that's dropped too. Signed-off-by: rovle <lovre.pesut@gmail.com> * docs(images): drop huggingface-hub from sandbox-gpu added-packages list The base sandbox image already ships huggingface-hub (with hf_xet); the Dockerfile deliberately does not re-install it, so it is not an addition. Signed-off-by: rovle <lovre.pesut@gmail.com> * docs(ci): fix stale sandbox-gpu base reference in pr_docker_build sandbox-gpu no longer builds FROM vllm/vllm-openai; it builds FROM the sandbox image via the SANDBOX_IMAGE build-arg. Signed-off-by: rovle <lovre.pesut@gmail.com> * security(images): verify CUDA runfile SHA-256 before executing it as root The runfile was piped into sh as root with no integrity check. Pin its SHA-256 (cross-checked against NVIDIA's published md5) and verify with sha256sum -c before running, so a swapped or corrupt download aborts the build instead of executing. Signed-off-by: rovle <lovre.pesut@gmail.com> * refactor(images): fold sandbox-gpu into amd64 build shard Signed-off-by: rovle <lovre.pesut@gmail.com> * fix(images): fail sandbox-gpu build when cubin pre-stage fails Signed-off-by: rovle <lovre.pesut@gmail.com> * test(images): smoke import sandbox-gpu runtime deps Signed-off-by: rovle <lovre.pesut@gmail.com> * feat(images): add transformers to sandbox-gpu runtime deps Signed-off-by: rovle <lovre.pesut@gmail.com> --------- Signed-off-by: rovle <lovre.pesut@gmail.com>
L
Lovre Pešut committed
429e2cc78ffc4186c5f9a9b23d29858d06ed6fa0
Parent: deb7e7f
Committed by GitHub <noreply@github.com>
on 5/29/2026, 11:25:58 AM