Hi there,
I work on AMD64 and I want to use docker buildx to build and push an image for ARMv7.
The problem is when I do docker buildx inspect --bootstrap
the result is missing the ARMv7 platform.
> docker buildx inspect --bootstrap
Name: pibuilder
Driver: docker-container
Nodes:
Name: pibuilder0
Endpoint: unix:///var/run/docker.sock
Status: running
Platforms: linux/amd64, linux/amd64/v2, linux/amd64/v3, linux/386
To get this I have installed qemu with yay qemu-full
Then when I do ls /proc/sys/fs/binfmt_misc/
I get this:
> ls /proc/sys/fs/binfmt_misc/
appimage-type1 DOSWin qemu-alpha qemu-hexagon qemu-microblaze qemu-mips64 qemu-mipsn32 qemu-ppc qemu-riscv32 qemu-sh4 qemu-sparc32plus qemu-xtensaeb
appimage-type2 qemu-aarch64 qemu-arm qemu-hppa qemu-microblazeel qemu-mips64el qemu-mipsn32el qemu-ppc64 qemu-riscv64 qemu-sh4eb qemu-sparc64 register
CLR qemu-aarch64_be qemu-armeb qemu-m68k qemu-mips qemu-mipsel qemu-or1k qemu-ppc64le qemu-s390x qemu-sparc qemu-xtensa status
I don’t know if this is right or not.
In any case, this does not change anything in the Platforms overview of buildx. I may have to update binfmt
somehow but all I found were Ubuntu instruction that did not work out for me.
I have searched using Google, the irst 3 hits are for the Arch Wiki and the AUR, all of them are 404.
Here I have found a guide:
So I ran docker run --privileged --rm tonistiigi/binfmt --install all
and it returned:
Unable to find image 'tonistiigi/binfmt:latest' locally
latest: Pulling from tonistiigi/binfmt
8d4d64c318a5: Pull complete
e9c608ddc3cb: Pull complete
Digest: sha256:66e11bea77a5ea9d6f0fe79b57cd2b189b5d15b93a2bdb925be22949232e4e55
Status: Downloaded newer image for tonistiigi/binfmt:latest
installing: arm64 qemu-aarch64 already registered
installing: s390x qemu-s390x already registered
installing: riscv64 qemu-riscv64 already registered
installing: mips64le qemu-mips64el already registered
installing: arm qemu-arm already registered
installing: ppc64le qemu-ppc64le already registered
installing: mips64 qemu-mips64 already registered
{
"supported": [
"linux/amd64",
"linux/386"
],
"emulators": [
"CLR",
"DOSWin",
"appimage-type1",
"appimage-type2",
"qemu-aarch64",
"qemu-aarch64_be",
"qemu-alpha",
"qemu-arm",
"qemu-armeb",
"qemu-hexagon",
"qemu-hppa",
"qemu-m68k",
"qemu-microblaze",
"qemu-microblazeel",
"qemu-mips",
"qemu-mips64",
"qemu-mips64el",
"qemu-mipsel",
"qemu-mipsn32",
"qemu-mipsn32el",
"qemu-or1k",
"qemu-ppc",
"qemu-ppc64",
"qemu-ppc64le",
"qemu-riscv32",
"qemu-riscv64",
"qemu-s390x",
"qemu-sh4",
"qemu-sh4eb",
"qemu-sparc",
"qemu-sparc32plus",
"qemu-sparc64",
"qemu-xtensa",
"qemu-xtensaeb"
]
}
Unfortunatly the example provided for appending a platform to my builder do not work for me and there seems to be no relationship between the names returned by the binfmt container and this setup so I wouldn’t know how to append qemu.arm for example, also it is strange that this has no version like armv7 or armv6.
Maybe someone knows how to add ARMv7 to docker buildx on Manjaro?