Skip to content

Creating a new builder pointing to a ARM64 host from a AMD64 host in WSL error #3783

@Filipe-Souza

Description

@Filipe-Souza

Contributing guidelines

I've found a bug and checked that ...

  • ... the documentation does not mention anything about my problem
  • ... there are no open or closed issues that are related to my problem

Description

I had setup docker community on my amd64 host, WSL2 setup, started the setup to add a new builder to my amd64 host with the following commands, starting with the new context host using SSH:

docker context create arm64-host   --docker "host=ssh://<ssh-user>@<lan-ip>" --description "Remote ARM64 Docker host"
docker buildx create --name native-multi --use default
docker buildx create --name native-multi --append arm64-host

Those commands work just fine and return no errors, but when running the bootstrap command, I got this error:

docker buildx inspect --bootstrap native-multi
[+] Building 1.8s (2/2) FINISHED 
=> [native-multi0 internal] booting buildkit 
1.8s 
=> => pulling image moby/buildkit:buildx-stable-1 
1.3s
 => => creating container buildx_buildkit_native-multi0 
0.6s => ERROR [native-multi1 internal] booting buildkit 
1.4s => => pulling image moby/buildkit:buildx-stable-1 
1.3s => => creating container buildx_buildkit_native-multi1 
0.1s
------
> [native-multi1 internal] booting buildkit: 
------ 
ERROR: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /usr/lib/wsl

But If I create the directory /usr/lib/wsl with sudo permissions on the ARM64 host, this error does not happen and the bootstrap works.

Expected behaviour

The command buildx inspect --bootstrap native-multi should return the summary and no errors:

[+] Building 2.3s (1/1) FINISHED
 => [internal] booting buildkit                                                                                                                                                                                                                        2.0s
 => => pulling image moby/buildkit:buildx-stable-1                                                                                                                                                                                                     1.4s
 => => creating container buildx_buildkit_native-multi0                                                                                                                                                                                               0.7s
Name:          native-multi
Driver:        docker-container
Last Activity: 2026-04-08 02:30:57 +0000 UTC

Nodes:
Name:                  native-multi0
Endpoint:              arm64-host
Status:                running
BuildKit daemon flags: --allow-insecure-entitlement=network.host
BuildKit version:      v0.29.0
Platforms:             linux/arm64, linux/arm/v7, linux/arm/v6
Labels:
 org.mobyproject.buildkit.worker.executor:         oci
 org.mobyproject.buildkit.worker.hostname:         640ad2db5f2f
 org.mobyproject.buildkit.worker.network:          host
 org.mobyproject.buildkit.worker.oci.process-mode: sandbox
 org.mobyproject.buildkit.worker.selinux.enabled:  false
 org.mobyproject.buildkit.worker.snapshotter:      overlayfs
GC Policy rule#0:
 All:            false
 Filters:        type==source.local,type==exec.cachemount,type==source.git.checkout
 Keep Duration:  48h0m0s
 Max Used Space: 488.3MiB
GC Policy rule#1:
 All:            false
 Keep Duration:  1440h0m0s
 Reserved Space: 9.313GiB
 Max Used Space: 87.54GiB
 Min Free Space: 22.35GiB
GC Policy rule#2:
 All:            false
 Reserved Space: 9.313GiB
 Max Used Space: 87.54GiB
 Min Free Space: 22.35GiB
GC Policy rule#3:
 All:            true
 Reserved Space: 9.313GiB
 Max Used Space: 87.54GiB
 Min Free Space: 22.35GiB

Actual behaviour

The command buildx inspect --bootstrap native-multi returns the error:

ERROR: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /usr/lib/wsl

Buildx version

github.com/docker/buildx v0.31.1 a267595

Docker info

# AMD64 Host
Client: Docker Engine - Community
 Version:    29.3.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.31.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v5.1.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose
  model: Docker Model Runner (Docker Inc.)
    Version:  v1.1.17
    Path:     /usr/libexec/docker/cli-plugins/docker-model

Server:
 Containers: 60
  Running: 2
  Paused: 0
  Stopped: 58
 Images: 41
 Server Version: 29.3.0
 Storage Driver: overlayfs
  driver-type: io.containerd.snapshotter.v1
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 CDI spec directories:
  /etc/cdi
  /var/run/cdi
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 301b2dac98f15c27117da5c8af12118a041a31d9
 runc version: v1.3.4-0-gd6d73eb8
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.6.87.2-microsoft-standard-WSL2
 Operating System: Ubuntu 24.04.4 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 12
 Total Memory: 31.25GiB
 Name: DESKTOP-DESKTOP
 ID: 38d0c6a0-7c4c-4408-98a8-88c84a2fa803
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false
 Firewall Backend: iptables

# ARM64 Host
Client: Docker Engine - Community
 Version:    29.3.1
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.33.0
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v5.1.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose
  model: Docker Model Runner (Docker Inc.)
    Version:  v1.1.29
    Path:     /usr/libexec/docker/cli-plugins/docker-model

Server:
 Containers: 2
  Running: 2
  Paused: 0
  Stopped: 0
 Images: 3
 Server Version: 29.3.1
 Storage Driver: overlayfs
  driver-type: io.containerd.snapshotter.v1
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 CDI spec directories:
  /etc/cdi
  /var/run/cdi
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 301b2dac98f15c27117da5c8af12118a041a31d9
 runc version: v1.3.4-0-gd6d73eb8
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.12.75+rpt-rpi-2712
 Operating System: Debian GNU/Linux 13 (trixie)
 OSType: linux
 Architecture: aarch64
 CPUs: 4
 Total Memory: 7.874GiB
 Name: ARM64HOST
 ID: 17725f52-f04a-492e-8128-af7991d6e64c
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false
 Firewall Backend: iptables

WARNING: No memory limit support
WARNING: No swap limit support

Builders list

NAME/NODE           DRIVER/ENDPOINT                   STATUS    BUILDKIT   PLATFORMS
native-multi*       docker-container
 \_ native-multi0    \_ unix:///var/run/docker.sock   running   v0.28.1    linux/amd64 (+3), linux/386
 \_ native-multi1    \_ arm64-host                    running   v0.28.1    linux/arm64, linux/arm (+2)
arm64-host          docker
 \_ arm64-host       \_ arm64-host                    running   v0.28.1    linux/arm64
default             docker
 \_ default          \_ default                       running   v0.28.0    linux/amd64 (+3)

Configuration

Not applicable

Build logs


Additional info

This is my WSL 2 info:

WSL version: 2.6.3.0
Kernel version: 6.6.87.2-1
WSLg version: 1.0.71
MSRDC version: 1.2.6353
Direct3D version: 1.611.1-81528511
DXCore version: 10.0.26100.1-240331-1435.ge-release
Windows version: 10.0.26200.8037

.wslconfig file (I disabled gpuSupport to see if the error changed):

[wsl2]
autoProxy=false
networkingMode=Mirrored
gpuSupport=false 

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions