【发布时间】:2022-11-24 14:06:53
【问题描述】:
以前工作的(在 linux 上)dockerized 项目在我的新 M1 mac 上构建正常,但在运行时失败并出现此错误:
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
我知道 this is due to a different architecture(mac 是 arm,linux 机器是 amd)但不知道如何更改我的项目以使其工作。我该如何前进?
我的基本图像是mhart/alpine-node:16,我正在运行一个 Node JS (TypeScript) 应用程序。
我尝试了什么(以及为什么这是不是重复) - 阅读了许多类似的线程 - 但没有帮助:
- 为 amd/64 (linux/intel arch) 构建 Mac 然后应该虚拟化,但这并没有太大变化。
-
adding a command to the Dockerfile 更新 qemu
RUN apk add --update qemu-x86_64 - 正在将基础 alpine 节点映像更新到最新版本
- 在 docker 桌面中启用了实验性功能
- 从 docker 桌面我可以看到图像是模拟的 arm64 架构。我删除了我的 Dockerfile 中的“from arm64”平台说明符和 docker compose 文件中的类似平台覆盖,然后我可以构建一个在没有 amd64 标签的情况下运行的应用程序映像。然而,它仍然遇到同样的问题并失败。
- 尝试使用普通节点 (node14) 基础映像
【问题讨论】:
标签: node.js docker apple-m1 qemu apple-silicon