Erlang 20.2的语法错误

时间:2017-12-23 10:34:17

标签: erlang rebar3

我遇到了Erlang 20的有线问题。

我使用rebar3 as prod tar生成归档文件,我使用它来构建基于erlang:20.2-alpine的泊坞窗图像。

在我的Macbook Pro上,可以拨打bin/app start,但在目标泊坞广告容器上,它会告诉我: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)```

2 个答案:

答案 0 :(得分:0)

我引用docker erlang,使用docker直接构建版本和目标图像。

答案 1 :(得分:0)

  

Tldr;将.dockerignore文件添加到项目中,该文件将忽略   _build目录。

我今天有这个问题。就像评论中提到的@ steve-vinoski一样,这确实与我在容器中运行macOS输出有关,但就像@ yuanbo-han一样,我也在Dockerfile中构建发行版,所以我无法确定找出为什么它不起作用。

然后我意识到,我的Dockerfile中有一个COPY . .指令,该指令从我的Mac中获取输出,因为我没有适当的.dockerignore。解决方案是将以下.dockerignore文件添加到项目的根目录:

_build/
.elixir_ls/
.git/
.vscode/
deps/
priv/static/
test/
.dockerignore
.env
.formatter.exs
.gitignore
.travis.yml
Dockerfile
README.md