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,[]]}}}"}
編集:
で本番環境用のリリースも作成してみました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
$
また、私が集めたものから、dev
または他の環境のリリースも作成できるはずです。そのため、不足している部分が両方の環境に影響を与える可能性があります。
前もって感謝します!