我有一堆 shell 脚本,运行
docker build
来构建 Docker 镜像,比如
#!/bin/bash
docker build -t my.registry/image1:latest dir1
docker build -t my.registry/image2:latest dir2
...
这些图像需要在
linux/amd64
机器上运行。 以前,Docker 映像是在 linux/amd64
机器上构建的,但现在我还需要能够在 M1 MacBook (ARM64) 上构建这些映像。 有没有办法在我的 MacBook 上配置和使用 Buildx 构建器,以便这些脚本可以在不进行更改的情况下运行? 我发现我可以将 Buildx 构建器配置为仅编译 linux/amd64
,并且可以将 docker build
别名为 docker buildx build
:
docker buildx create --platform linux/amd64 --name mybuilder
docker buildx use mybuilder
docker buildx install
但我仍然需要指定
--load
选项。 有没有办法将其配置为默认值,或者我只需更新脚本(并要求 Linux 用户安装 Buildx)?
我浏览了各种文档页面,但没有运气,所以这可能是不可能的,但我只是想确保我没有遗漏一些东西。
您可以在创建 buildx 构建器时设置
--driver-opt=default-load=true
。
docker buildx create --name multi-arch --platform=linux/amd64,linux/arm64 --driver-opt=default-load=true --driver=docker-container