I am the author of Erlang microkernel (powered by rumprun unikernel) and building support for running elixir, so it will be an elixir microkernel. I have spent only a couple of hours looking at elixir, so a lot of what I am about to say may appear basic but need to get something working quick and need help. I am intentionally excluding the details of the build to avoid any unnecessary confusion, while trying to understand the error message. I am in the process of creating a github project which I will refer later tonight for anyone to go through (in case that is required).
Basically, I followed the tutorial to get phoenix working and got on to a stage of making a release, but running that directly with Erlang beam vm is a source of an issue at present. The following command line is eventually used while trying to start the elixir application (hello_phoenix), which is giving the error (at present) and I need help in deciphering the error message.
beam -- -no_epmd -root /opt/erlang/lib/erlang -boot_var ERTS_LIB_DIR /opt/erlang/lib/erlang/lib -progname erl -- -home /tmp -noshell -noinput -mode embedded
The start.boot is set such that it uses the hello_phoenix.boot script, so things are being started automatically which it fails as follows.
warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)
16:16:45.392 [info] Application hello_phoenix exited: HelloPhoenix.start(:normal, []) returned an error: shutdown: failed to start child: HelloPhoenix.Repo
** (EXIT) an exception was raised:
** (ArgumentError) configuration for HelloPhoenix.Repo not specified in :hello_phoenix environment
(ecto) lib/ecto/repo/supervisor.ex:23: Ecto.Repo.Supervisor.config/3
(ecto) lib/ecto/repo/supervisor.ex:9: Ecto.Repo.Supervisor.start_link/4
(stdlib) supervisor.erl:358: :supervisor.do_start_child/2
(stdlib) supervisor.erl:341: :supervisor.start_children/3
(stdlib) supervisor.erl:307: :supervisor.init_children/2
(stdlib) gen_server.erl:328: :gen_server.init_it/6
(stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
{"Kernel pid terminated",application_controller,"{application_start_failure,hello_phoenix,{{shutdown,{failed_to_start_child,'Elixir.HelloPhoenix.Repo',{'EXIT',{#{'__exception__' => true,'__struct__' => 'Elixir.ArgumentError',message => <<\"configuration for HelloPhoenix.Repo not specified in :hello_phoenix environment\">>},[{'Elixir.Ecto.Repo.Supervisor',config,3,[{file,\"lib/ecto/repo/supervisor.ex\"},{line,23}]},{'Elixir.Ecto.Repo.Supervisor',start_link,4,[{file,\"lib/ecto/repo/supervisor.ex\"},{line,9}]},{supervisor,do_start_child,2,[{file,\"supervisor.erl\"},{line,358}]},{supervisor,start_children,3,[{file,\"supervisor.erl\"},{line,341}]},{supervisor,init_children,2,[{file,\"supervisor.erl\"},{line,307}]},{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.HelloPhoenix',start,[normal,[]]}}}"}
Crash dump is being written to: erl_crash.dump...