在 Alpine Linux 上构建 Elixir 和 Beam 的问题

Wil*_*oss 15 alpine-linux

我正在使用 Alpine linux 3.12 运行构建,构建失败,并显示以下输出,指示构建梁和具有 C++ 依赖项的 ERTS 时出错。

Error relocating /opt/app/erts-12.3.2.1/bin/beam.smp: _ZSt28__throw_bad_array_new_lengthv: symbol not found
Error relocating /opt/app/erts-12.3.2.1/bin/beam.smp: pthread_getname_np: symbol not found
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直在研究这两个特定错误的线程以及有关失败的各种线程。

是否有一些依赖项可能需要更新?

Sho*_* Ya 23

这可能是由于elixir:1.12.3-alpine中的 Elixir 镜像更新导致的,该更新将基础镜像从 升级为。alpine:3.14alpine:3.16

如果您构建 Elixir 版本elixir:1.12.3-alpine并尝试在较旧的 alpine 上运行该版本,您将遇到此错误,因为运行时映像具有较旧的 musl 版本。

要修复此问题,您可以将运行时映像升级到alpine:3.16.