Bug Description
When running vcluster create in Docker driver mode on ARM64 macOS (Apple Silicon), if Docker emits a platform architecture mismatch warning on stderr (e.g. when an amd64 alpine network test image is cached locally), vcluster captures the warning text along with the container ID.
vcluster then passes the multi-line string directly to docker inspect, causing a fatal crash with a confusing error: no such object: WARNING: ... error.
Environment
- vCluster CLI Version:
v0.36.1
- OS / Arch: macOS (
darwin/arm64)
- Docker Engine / Provider: OrbStack / Docker Desktop on Apple Silicon (
linux/arm64/v8)
Steps to Reproduce
- On an ARM64 Mac, pull or cache an
amd64 alpine image:
docker pull --platform linux/amd64 alpine
- Run
vcluster create:
Actual Behavior
The command fails fatally with an unhelpful error message:
19:44:41 info Ensuring environment for vCluster demo...
19:44:42 fatal failed to configure network: failed to configure load balancer: failed to check if docker network is reachable: failed to inspect test network container:
error: no such object: WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
23e586d93b4ca2d51a8d21e27ad14807b1fefb4445adc275adcb03093a76b216
: exit status 1
Expected Behavior
vcluster should separate stdout (which contains the container ID) from stderr (which contains Docker warnings) when executing helper container commands.
vcluster should validate that captured container IDs match standard 12/64-character hex strings (^[a-f0-9]{12,64}$) before attempting docker inspect.
- Optionally,
vcluster should pass --platform matching the host architecture when spawning helper network test containers.
Suggested Fix
In the Docker network reachability checker package:
- Use dedicated
stdout and stderr buffers for exec.Command("docker", ...) rather than CombinedOutput().
- Extract the container ID exclusively from
stdout.
- Provide a clear, actionable error message if container creation fails, guiding users on architecture mismatch issues.
Bug Description
When running
vcluster createin Docker driver mode on ARM64 macOS (Apple Silicon), if Docker emits a platform architecture mismatch warning onstderr(e.g. when anamd64alpinenetwork test image is cached locally),vclustercaptures the warning text along with the container ID.vclusterthen passes the multi-line string directly todocker inspect, causing a fatal crash with a confusingerror: no such object: WARNING: ...error.Environment
v0.36.1darwin/arm64)linux/arm64/v8)Steps to Reproduce
amd64alpineimage:vcluster create:Actual Behavior
The command fails fatally with an unhelpful error message:
Expected Behavior
vclustershould separatestdout(which contains the container ID) fromstderr(which contains Docker warnings) when executing helper container commands.vclustershould validate that captured container IDs match standard 12/64-character hex strings (^[a-f0-9]{12,64}$) before attemptingdocker inspect.vclustershould pass--platformmatching the host architecture when spawning helper network test containers.Suggested Fix
In the Docker network reachability checker package:
stdoutandstderrbuffers forexec.Command("docker", ...)rather thanCombinedOutput().stdout.