使用 docker buildx 构建多架构多平台 Docker 镜像
前置准备
查看 buildx 版本
docker buildx version
# 如果不可用,则需启用 buildx
export DOCKER_CLI_EXPERIMENTAL=enabled
启用 binfmt_misc
docker run --privileged --rm docker.io/tonistiigi/binfmt:latest --install all
# 检查 QEMU 处理程序以验证设置是否正确
ls -al /proc/sys/fs/binfmt_misc/
# 也可以验证指定架构的处理程序是否已启用
cat /proc/sys/fs/binfmt_misc/qemu-aarch64
将默认 Docker 镜像构建器切换为 buildx
# 创建构建器 mybuilder
docker buildx create --name mybuilder
# 使用构建器 mybuilder
docker buildx use mybuilder
# 启动构建器
docker buildx inspect mybuilder --bootstrap
# 验证指定构建器是否已启用
docker buildx ls
开始构建
登录镜像仓库
docker login docker.io -u sample-user -p sample-user-token
构建镜像
docker.io/sample-user/sample-project
为镜像仓库完整地址
latest
为镜像标签
--push
为构建完成自动推送
docker buildx build -t=docker.io/sample-user/sample-project:latest --platform=linux/386,linux/amd64,linux/arm,linux/arm64,linux/s390x,linux/riscv64,linux/ppc64le,linux/mips64,linux/mips64le . --push
清理
docker buildx stop
docker buildx rm mybuilder