Skip to content

failed to run any build if using a builder instance with multiple native nodes #675

@chestack

Description

@chestack

I want to try building multi-platform images using one builder instance with multiple nodes(docker daemon) as that in buildx README.

steps:

  1. one arm64 node with docker daemon remote API enabled
  2. one x86 node, create docker context arm-builder, create build instance with two nodes(x86 and arm)
  3. build multi-platform images

following is detailed commands result

[root@build-cloud-product-clone-4 Dockerfiles]# docker context ls
NAME            DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT   ORCHESTRATOR
arm-builder *   arm build server                          tcp://172.38.0.16:2375
default         Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                         swarm
[root@build-cloud-product-clone-4 Dockerfiles]# docker ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED          STATUS             PORTS                  NAMES
1be76a989346   moby/buildkit:buildx-stable-1          "buildkitd"              17 minutes ago   Up 17 minutes                             buildx_buildkit_insecure-builder1
cd79793acc5d   hub.easystack.io/arm64v8/registry:v2   "/entrypoint.sh /etc…"   25 hours ago     Up About an hour   0.0.0.0:80->5000/tcp   registry-hub
[root@build-cloud-product-clone-4 Dockerfiles]# docker buildx ls
NAME/NODE           DRIVER/ENDPOINT             STATUS  PLATFORMS
insecure-builder *  docker-container
  insecure-builder0 unix:///var/run/docker.sock running linux/arm64*, linux/amd64*, linux/386
  insecure-builder1 arm-builder                 running linux/arm64
arm-builder         docker
  arm-builder       arm-builder                 running linux/arm64
default             docker
  default           default                     running linux/amd64, linux/386
[root@build-cloud-product-clone-4 Dockerfiles]# docker -D buildx build --push --platform linux/amd64,linux/arm64 -t hub.easystack.cn:80/buildx/multiple-platform .
DEBU[0000] using default config store "/root/.docker/buildx"
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xca36c2]

goroutine 15 [running]:
github.com/moby/buildkit/client.(*Client).controlClient(...)
	/src/vendor/github.com/moby/buildkit/client/client.go:114
github.com/moby/buildkit/client.(*Client).ListWorkers(0x0, 0x205a2a0, 0xc00026a6c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/src/vendor/github.com/moby/buildkit/client/workers.go:30 +0x102
github.com/moby/buildkit/client.(*Client).Build(0x0, 0x205a2a0, 0xc00026a6c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/src/vendor/github.com/moby/buildkit/client/build.go:34 +0x11c
github.com/docker/buildx/build.resolveDrivers.func1.1(0x0, 0x0)
	/src/build/build.go:198 +0x12e
golang.org/x/sync/errgroup.(*Group).Go.func1(0xc0000be630, 0xc00007ed20)
	/src/vendor/golang.org/x/sync/errgroup/errgroup.go:57 +0x59
created by golang.org/x/sync/errgroup.(*Group).Go
	/src/vendor/golang.org/x/sync/errgroup/errgroup.go:54 +0x66
[root@build-cloud-product-clone-4 Dockerfiles]#

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions