使用exrm崩溃运行Phoenix应用程序版本

mav*_*tic 5 release elixir exrm phoenix-framework

我正在尝试创建一个库存Phoenix应用程序的发布(基于Elixir和Erlang)使用exrm.

dev混合环境的第一个版本创建正常,但在运行时崩溃./rel/my_app/bin/my_app console.这发生在Vagrant/Virtual Box虚拟机中运行Ubuntu 14.04.

在我的Mac上,相同的设置运行正常.不幸的是,我需要在与目标服务器具有相同架构的机器上构建版本,该服务器将运行Ubuntu.

您可以在这里找到该应用程序:https://github.com/mavenastic/my_app.它包括在VM上安装依赖项和创建项目所需的步骤(请参阅参考资料STEPS.md)以及Erlang崩溃转储.

以下是我尝试运行控制台时出现的错误:

{"Kernel pid terminated",application_controller,"{application_start_failure,my_app,{{shutdown,{failed_to_start_child,'Elixir.MyApp.Endpoint',{shutdown,{failed_to_start_child,'Elixir.Phoenix.CodeReloader.Server',{undef,[{'Elixir.Mix.Project',config,[],[]},{'Elixir.Phoenix.CodeReloader.Server',init,1,[{file,\"lib/phoenix/code_reloader/server.ex\"},{line,29}]},{gen_server,init_it,6,[{file,\"gen_server.erl\"},{line,328}]},{proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,240}]}]}}}}},{'Elixir.MyApp',start,[normal,[]]}}}"}
Run Code Online (Sandbox Code Playgroud)

编辑:

我也尝试为生产环境创建一个版本MIX_ENV=prod mix release.发布成功生成并MIX_ENV=prod PORT=8889 ./rel/my_app/bin/my_app console运行正常.但是,我无法ping服务器,也无法在启动时运行远程控制台,因此应用程序运行正常似乎仍然缺少.

$ MIX_ENV=prod PORT=8889 ./rel/my_app/bin/my_app start
$ MIX_ENV=prod PORT=8889 ./rel/my_app/bin/my_app ping

=INFO REPORT==== 24-Oct-2015::10:28:25 ===
Protocol: "inet_tcp": register/listen error: econnrefused
escript: exception error: no match of right hand side value
                 {error,
                     {{shutdown,
                          {failed_to_start_child,net_kernel,
                              {'EXIT',nodistribution}}},
                      {child,undefined,net_sup_dynamic,
                          {erl_distribution,start_link,
                              [['my_app_maint_2551@127.0.0.1',longnames]]},
                          permanent,1000,supervisor,
                          [erl_distribution]}}}

$ ps aux | grep my_app
vagrant   2572  0.0  0.0   7532    96 ?        S    10:28   0:00 /vagrant/my_app/rel/my_app/erts-7.1/bin/epmd -daemon
vagrant   2575  0.0  0.2   9448  2256 pts/0    S+   10:28   0:00 grep --color=auto my_app

$ MIX_ENV=prod PORT=8889 ./rel/my_app/bin/my_app remote_console
$
Run Code Online (Sandbox Code Playgroud)

此外,根据我的收集,我应该能够为该dev环境或任何其他环境创建一个版本.因此缺失的部分可能会影响两种环境.

提前致谢!

mav*_*tic 0

根据 @bitwalker 的建议,使用 的master分支exrm解决了这个问题。