Skip to content

[Linux][Sandbox] v0.0.95 sandbox image build fails on Docker Engine — Dockerfile uses BuildKit-only --mount=type=bind,from= syntax not supported by openshell build path #7611

Description

@mercl-lau

Warning

Regression: worked in v0.0.93 (94-step Dockerfile with COPY), broken in v0.0.95 (109-step Dockerfile with --mount=type=bind,from=)

Description

NemoClaw v0.0.95 onboard fails on all platforms using Docker Engine (non-Desktop) because the Dockerfile introduced BuildKit-only syntax (RUN --mount=type=bind,from=hermes-npm-patch-payload) that the openshell sandbox build path does not support. The build stops immediately at this step with "stopped after 0.2s". Docker Desktop (which defaults to BuildKit) is not affected.

The nemoclaw code sets DOCKER_BUILDKIT=1 in sandbox-prebuild.ts, but the openshell Docker-driver gateway performs the actual docker build and appears to use the traditional builder (output shows "Step X/Y" format, not BuildKit's "#N [stage]" format), ignoring the BuildKit flag.

v0.0.93 Dockerfile used only COPY instructions at the same step positions. v0.0.95 replaced them with --mount=type=bind,from= multi-stage bind mounts.

Platform scope: Reproduced on Ubuntu 22.04, Ubuntu 24.04, Ubuntu 24.04 GPU, Ubuntu 26.04 GPU, DGX Station, DGX Spark, WSL2 (all using Docker Engine); verified working on macOS and DGX Spark with Docker Desktop

Environment

Device:        Ubuntu 22.04 / Ubuntu 24.04 / DGX Station / WSL2
OS:            Linux (multiple distros)
Architecture:  x86_64 / arm64
Node.js:       v22.22.3
npm:           10.9.8
Docker:        Docker Engine 29.2.1 - 29.5.3
OpenShell CLI: openshell 0.0.85
NemoClaw:      v0.0.95
OpenClaw:      N/A (onboard failed)

Steps to Reproduce

  1. On a Linux host with Docker Engine (not Docker Desktop), install NemoClaw v0.0.95:
    NEMOCLAW_INSTALL_TAG=v0.0.95 curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash
  2. Run nemoclaw onboard (or let the installer proceed to onboard)
  3. Observe sandbox image build stops at Step 37/109 (hermes) or Step 76/163 (openclaw)

Expected Result

Sandbox image build should complete successfully on Docker Engine, just as it does on Docker Desktop.

Actual Result

Build output (traditional builder format, not BuildKit):

Step 36/109 : FROM base-image
Step 36/109 completed in 0.0s
Step 37/109 : RUN --mount=type=bind,from=hermes-npm-patch-payload,source=/,target=/run/nemo...
Step 37/109 stopped after 0.2s
Sandbox image build stopped after 4.7s

The --mount=type=bind,from= syntax requires BuildKit. Although nemoclaw sets DOCKER_BUILDKIT=1 in its Node.js subprocess env, the openshell Docker-driver gateway performs the actual build and does not propagate this flag — it falls back to the traditional builder which cannot parse --mount directives.

Logs

Not captured

Metadata

Metadata

Assignees

Labels

NV QABugs found by the NVIDIA QA TeamUATIssues flagged for User Acceptance Testing.needs: triageAwaiting maintainer classification

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions