0

在Docker 论坛上发布以下内容后,我在这里尝试。

我已经尝试了文档中解释的 buildx 命令(来自我的基于 Intel 的 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 user process caused "exec format error"</p>

buildx 是否足以获取多架构镜像?还是我需要更多(例如,实际支持 ARM 的 Linux 映像)?

我的镜像是基于另一个镜像的,它是基于Tomcat+Linux镜像的。我需要在所有父母身上重新运行 buildx 吗?

对于那些对细节感兴趣的人,这是关于从它的代码库为我们自己的应用程序构建图像,文档在这里

提前致谢。

4

1 回答 1

2
standard_init_linux.go:211: exec user process caused “exec format error”

当您尝试在您的设备上为另一个架构运行映像时,确实会发生这种情况。

您的基础映像也必须支持所选架构。因此,如果它不支持您的架构,您必须自己为您的架构构建父级。

在 dockerhub 中,您可以在tags下看到支持的架构。或者,您可以使用该docker image inspect命令。

于 2021-04-13T15:07:40.393 回答