Docker: 使用 buildx 支持多架构,parent 图像上是否需要它?
Docker: Using buildx to support multiple architecture, do I need it on the parent image?
在 Docker Forum.
上发布以下内容后,我正在这里尝试
我已经尝试了文档中解释的 buildx 命令(来自我的 Intel-based Mac):
# This normally works with build, without buildx
git clone https://github.com/Rothamsted/knetminer
cd knetminer
# buildx is the new thing I'm trying, to have multi-arch support
docker buildx build --platform linux/amd64,linux/arm64 -t knetminer/knetminer -f docker/Dockerfile --push .
然而,当我在 ARM64 上尝试发布的图像时,我仍然得到了通常的结果:
standard_init_linux.go:211: exec 用户进程导致“exec 格式错误”
buildx 是否足以获取 multiple-architecture 图像?还是我需要更多(例如 Linux 实际支持 ARM 的图像)?
我的图像是基于另一个图像,它是基于 Tomcat
+Linux 图片。我是否需要在所有 parents 上 re-run buildx?
对于那些对细节感兴趣的人,这是关于从其代码库构建我们自己的应用程序的图像,documentation here。
提前致谢。
standard_init_linux.go:211: exec user process caused “exec format error”
当您尝试 运行 您的设备上的另一个架构的图像时,确实会发生。
您的基础映像也必须支持所选架构。所以你必须自己为你的架构构建父级,如果它不支持你的架构。
在 dockerhub 中,您可以在 tags 下看到支持的架构。
或者,您可以使用 docker image inspect
命令。
在 Docker Forum.
上发布以下内容后,我正在这里尝试我已经尝试了文档中解释的 buildx 命令(来自我的 Intel-based Mac):
# This normally works with build, without buildx
git clone https://github.com/Rothamsted/knetminer
cd knetminer
# buildx is the new thing I'm trying, to have multi-arch support
docker buildx build --platform linux/amd64,linux/arm64 -t knetminer/knetminer -f docker/Dockerfile --push .
然而,当我在 ARM64 上尝试发布的图像时,我仍然得到了通常的结果: standard_init_linux.go:211: exec 用户进程导致“exec 格式错误”
buildx 是否足以获取 multiple-architecture 图像?还是我需要更多(例如 Linux 实际支持 ARM 的图像)?
我的图像是基于另一个图像,它是基于 Tomcat +Linux 图片。我是否需要在所有 parents 上 re-run buildx?
对于那些对细节感兴趣的人,这是关于从其代码库构建我们自己的应用程序的图像,documentation here。
提前致谢。
standard_init_linux.go:211: exec user process caused “exec format error”
当您尝试 运行 您的设备上的另一个架构的图像时,确实会发生。
您的基础映像也必须支持所选架构。所以你必须自己为你的架构构建父级,如果它不支持你的架构。
在 dockerhub 中,您可以在 tags 下看到支持的架构。
或者,您可以使用 docker image inspect
命令。