在更新 seedgou/zerotier-moon 的时候,尝试了构建多架构的镜像并上传至 Docker Hub 上,记录一下。

安装 QEMU

安装 QEMU 提供多架构 CPU 的模拟。

$ apt install -y qemu-user-static binfmt-support

运行 docker buildx ls,查看可用的架构:

$ docker buildx ls
NAME/NODE           DRIVER/ENDPOINT             STATUS  PLATFORMS
default             docker
  default           default                     running linux/amd64, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/386, linux/arm/v7, linux/arm/v6

创建 buildx 实例

运行 docker buildx create --use 创建一个 builder。

构建并上传

运行构建命令并上传

$ docker buildx build -t seedgou/zerotier-moon:edge --platform=linux/amd64,linux/386,linux/ppc64le . --push

其中 seedgou/zerotier-moon:edge 为 Docker image 的 tag 名称, linux/amd64,linux/386,linux/ppc64le 为架构名称。

参考

Leverage multi-CPU architecture support | Docker Documentation