首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在arm64主机上运行x86_64码头映像

如何在arm64主机上运行x86_64码头映像
EN

Stack Overflow用户
提问于 2022-10-05 00:17:43
回答 1查看 200关注 0票数 1

如何在我的linux/arm64/v8 /amd64主机上使用x86_64平台运行Erlang命令?我试图建立一个多平台码头形象跟随正式文件。在使用erlang运行构建步骤时,我的构建失败了。下面是构建失败的根本原因: Erlang命令在在segmentation fault主机上模拟arm64时返回arm64,尽管arm/v7可以工作。

我已经在两台机器上进行了测试:Windows 10, WSL 2 Ubuntu 20.04, Docker Desktop, x84_64Ubuntu 20.04, x86_64。我在tonistiigi/binfmt上测试了qemu版本的6.2.07.0.0-28,使用它们各自的标记来安装模拟器。

假设已安装了Docker,则在任一x86_64主机上进行复制的步骤:

代码语言:javascript
运行
复制
$ docker run --privileged --rm tonistiigi/binfmt --install all
{
  "supported": [
    "linux/amd64",
    "linux/arm64",
    "linux/riscv64",
    "linux/ppc64le",
    "linux/s390x",
    "linux/386",
    "linux/mips64le",
    "linux/mips64",
    "linux/arm/v7",
    "linux/arm/v6"
  ],
  "emulators": [
    "qemu-aarch64",
    "qemu-arm",
    "qemu-mips64",
    "qemu-mips64el",
    "qemu-ppc64le",
    "qemu-riscv64",
    "qemu-s390x"
  ]
}

$ docker run --rm -it --platform linux/arm64 erlang:latest /bin/bash
root@d7f9b846f13a:/# uname -m
aarch64
root@d7f9b846f13a:/# erl
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault

$ docker inspect erlang:latest --format '{{.Os}}/{{.Architecture}}/{{.Variant}}'
linux/arm64/v8

上面,platform linux/arm64正在与linux/arm64/v8混叠。运行erl时出现分段错误时失败。我希望它能与linux/arm/v7一样工作,它能够启动erl会话,如下所示。

代码语言:javascript
运行
复制
$ docker run --rm -it --platform linux/arm/v7 erlang:latest /bin/bash
root@5a786052f0e4:/# uname -m
armv7l
root@5a786052f0e4:/# erl
Erlang/OTP 25 [erts-13.1.1] [source] [32-bit] [smp:2:2] [ds:2:2:10] [async-threads:1]

Eshell V13.1.1  (abort with ^G)
1>

$ docker inspect erlang:latest --format '{{.Os}}/{{.Architecture}}/{{.Variant}}'
linux/arm/v7

如何在我的linux/arm64/v8 /amd64主机上使用x86_64平台运行Erlang命令?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-05 19:30:23

由于qemu中的错误/缺失特性,erlang在运行时会出现分段错误。因此,您需要在不使用jit的情况下编译erlang,或者使用没有jit的erlang的旧版本。

有关更多细节,请参见https://github.com/erlang/otp/pull/6340

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73954808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档