相关疑难解决方法(0)

在 Mac OSX 上构建的 Docker 映像不会在 AWS EC2 实例上运行

使用 M1 处理器在 Mac OSX 上构建的映像,部署到 EC2 实例。但是当脚本运行时,它会产生错误:

standard_init_linux.go:219: exec user process caused: exec format error

在 Stackoverflow 的其他地方,这被解释为操作系统架构不匹配。果然在 EC2 实例上运行“uname -m”显示它是 x86_64,“docker image inspect”显示容器具有架构 arm64。

这是我不明白的地方。我的 Mac 上的“uname -m”也显示为 x86_64。那么容器如何继承不同的架构呢?

更重要的是,如何在我的 Mac 上构建可以在 EC2 上运行的映像?

Docker 文件很简单

FROM python
WORKDIR /
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY src /src
Run Code Online (Sandbox Code Playgroud)

src 目前包含一些简单的 python 脚本,执行如下:

docker run container/name python test.py

这在我的 Mac 上运行良好,但在 AWS 上执行时会出现上述错误。

macos amazon-ec2 docker apple-silicon apple-m1

5
推荐指数
1
解决办法
1199
查看次数

标签 统计

amazon-ec2 ×1

apple-m1 ×1

apple-silicon ×1

docker ×1

macos ×1