我可以使用命令在 WSL 上使用 Intel x64 为 DockerHUB 构建 docker 映像:
docker build --tag sosnus15/pinger
我可以使用命令在同一台机器上为基于 ARM 的计算机构建:
docker build --platform arm64 --tag sosnus15/pinger
但是如何同时在两个平台上构建呢?我尝试:
docker build --platform linux/amd64,linux/arm64 --tag sosnus15/pinger:1.0.3 .
控制台输出是:
Error response from daemon: "amd64,linux" is an invalid component of "linux/amd64,linux/arm64": platform specifier component must match "^[A-Za-z0-9_-]+$": invalid argument
那么...我如何使用一个命令 docker build 同时在 2 个平台上创建 2 个镜像?
对于多平台镜像,你应该使用buildx:
docker buildx build --platform linux/amd64,linux/arm64 --tag sosnus15/pinger:1.0.3 --push .
请注意,这还需要推送到注册表,因为本地映像存储(至少在 Containerd 过渡结束实验之前)仅支持单个平台映像。
如果您还没有这样做,您将需要设置一个构建器。有关更多详细信息,请参阅 Docker 文档:https://docs.docker.com/build/building/multi-platform/