【发布时间】:2019-07-25 05:26:28
【问题描述】:
我遇到了 Erlang 20 的有线问题。
我使用rebar3 as prod tar 生成一个存档文件,并使用它来构建基于erlang:20.2-alpine 的docker 映像。
在我的 Macbook Pro 上,可以调用 bin/app start,但在目标 docker 容器上,它告诉我:erts-9.2/bin/erlexec: line 1: syntax error: unexpected "("
我的 Macbook Pro 上的 Erlang:
erl
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Eshell V9.2 (abort with ^G)
目标容器上的 Erlang:
erl
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.2 (abort with ^G)```
【问题讨论】:
-
请注意,
erlexec是编译后的可执行程序。您可能正在尝试在 Linux 容器中运行为 OS X 构建的erlexec。尝试通过运行file <path-to-erlang-install>/erts-9.2/bin/erlexec来检查容器中erlexec的类型。 -
感谢您的建议,我直接使用Alpine容器构建发布