【发布时间】:2022-12-30 06:05:30
【问题描述】:
我的 Dockerfile 在 x86 机器上工作,但在 arm64 架构的机器上失败;特别是a1.2xlarge(aws EC2-instance)。
运行错误docker compose up -d
#0 0.462 exec /bin/sh: exec format error
------
failed to solve: executor failed running [/bin/sh -c apt-get update]: exit code: 1
Dockerfile 看起来像这样
FROM phusion/passenger-ruby27
ENV HOME /root
RUN apt-get update
泊坞窗-v
Docker version 20.10.17, build 100c701
uname -a
Linux Ubuntu SMP Thu Jun 9 13:06:11 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
lsb_release -a
Ubuntu 20.04.4 LTS
【问题讨论】:
-
这似乎是预料之中的,因为处理器架构不同。您可以改为提供基于 x86 的 EC2 实例吗?
-
我在这里从头开始构建一个 docker 镜像。那么架构有何不同呢?并在
RUN apt-get update上抛出错误;它应该在任何架构上运行。此外,我正在使用 AWS 保留实例,并且无法从 a1.2xlarge 移走。 -
您不是从头开始构建图像,而是基于另一个图像构建图像,该图像仅在
linux/amd64上受支持。因此,您的处理器架构与@DavidMaze 所述不同。如果您有权访问基础映像的 Dockerfile,则可以在您的文件中包含这些步骤,或者也可以在本地为您的架构重建它。