当前环境:linux/amd64
创建builder使用以下命令
$ docker buildx create --name multi-arch-builder --driver docker-container --use
使用该builder构建镜像时报错如标题
$ docker buildx build --platform linux/arm64 --build-arg harbor_base_namespace=goharbor --build-arg trivy_version=v0.46.1 --build-arg harbor_base_image_version=dev -t myusername/hello . -f ./make/photon/trivy-adapter/Dockerfile --load
查看支持的架构,不支持linux/arm64
$ docker buildx inspect --bootstrap
Name: multi-arch-builder
Driver: docker-container
Last Activity: 2024-02-20 05:48:55 +0000 UTC
Nodes:
Name: multi-arch-builder0
Endpoint: unix:///var/run/docker.sock
Status: running
Buildkit: v0.12.5
Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
解决方式如下
docker run --rm --privileged multiarch/qemu-user-static:register --reset
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
docker buildx rm multi-arch-builder
docker buildx create --name multi-arch-builder --driver docker-container --use
docker buildx inspect --bootstrap
再次查看
$ docker buildx inspect --bootstrap
Name: multi-arch-builder
Driver: docker-container
Last Activity: 2024-02-20 05:58:49 +0000 UTC
Nodes:
Name: multi-arch-builder0
Endpoint: unix:///var/run/docker.sock
Status: running
Buildkit: v0.12.5
Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/arm64, linux/riscv64, linux/ppc64, linux/ppc64le, linux/s390x, linux/386, linux/mips64le, linux/mips64, linux/arm/v7, linux/arm/v6