buildx build --platform=linux/arm64,linux/amd64
最新更新后使用 docker 命令可能会导致错误:
ERROR: multiple platforms feature is currently not supported for docker driver. Please switch to a different driver (eg. "docker buildx create --use")
答案1
现在你必须在docker buildx create
命令中使用明确的平台来创建构建器
docker buildx create --use --platform=linux/arm64,linux/amd64 --name multi-platform-builder
docker buildx inspect --bootstrap
docker buildx build --platform=linux/arm64,linux/amd64 --push --tag project-name:latest -f ./project-name/Dockerfile .
docker buildx create --use --platform=linux/arm64,linux/amd64 --name multi-platform-builder
- 此命令创建一个新的构建器实例。在这种情况下,它同时支持linux/arm64和linux/amd64平台。 --name 标志设置构建器的名称“multi-platform-builder”。
docker buildx inspect --bootstrap
此命令检查在上一步中创建的构建器并执行任何必要的设置或配置。 --bootstrap 标志指示构建器应该被初始化(如果尚未初始化)
docker buildx build --platform=linux/arm64,linux/amd64 --push --tag project-name:latest -f ./project-name/Dockerfile .
此命令使用之前创建的构建器构建 Docker 映像。
- 该
--platform
标志指定应为其构建映像的平台,类似于第一个命令。 - 该
--push
标志指示构建的映像应推送到容器注册表。 - --tag 标志为图像设置一个标签,在本例中为“project-name:latest”。
- 该
-f
标志指定用于构建映像的 Dockerfile 的路径,在本例中为“./project-name/Dockerfile”。 - 最后的“。”表示构建上下文,它是包含要添加到映像的文件的目录。