SIGN IN SIGN UP
daytonaio / daytona UNCLAIMED

Daytona is a Secure and Elastic Infrastructure for Running AI-Generated Code

0 0 47 TypeScript

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