【发布时间】:2021-05-02 16:11:17
【问题描述】:
基于 Mac OSX 和 M1 处理器构建的映像,部署到 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
其中 src 目前包含一些简单的 python 脚本,执行如下:
docker run container/name python test.py
这在我的 Mac 上运行良好,但在 AWS 上执行时出现上述错误。
【问题讨论】:
标签: macos docker amazon-ec2 apple-m1 apple-silicon