Hey folks! Total noob to all things phoenix and elixir. I have inherited a project that runs fine locally and I am trying to get it to run on a production server. I am following this tutorial from Digital Ocean: How To Automate Elixir-Phoenix Deployment with Distillery and edeliver on Ubuntu 16.04 | DigitalOcean. Everything runs fine until the command mix edeliver start production where I get the error:
-----> starting production servers
production node:
user : deployer
host : myapp
path : /home/deployer/app_release
response: init terminating in do_boot ({cannot get bootfile,no_dot_erlang.boot})
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ({cannot get bootfile,no_dot_erlang.boot})
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ({cannot get bootfile,no_dot_erlang.boot})
Crash dump is being written to: erl_crash.dump...done
START DONE!
My first question is, is it OK that I am doing with from a MAC dev environment, and could that be the reason I am getting this error? I only ask b/c the DO article says it should be done from an Ubuntu-based environment.
Next, I found this topic:
ā¦which looks similar to mine. I updated to distillery locally, but am still getting the same error. That topic mentions patching distillery, but Iām not exactly sure how to do that. Where does it live, and can I just upgrade or downgrade so this works?
The error message indicates a version mismatch of the Erlang version used for compilation and that used to run. Usually the compiler version is newer than the runtime version.
Iād check that first. If both versions are the same, you should try to use an Ubuntu VM that is a mostly exact clone of the target host.
Good call Nobbz. Indeed I have 10.0.1 locally and 10.0.0 on the server. Just spent an hour trying to uninstall and/or update the production server and everything is a mess now. I guess I will blow that server away and try rebuilding it from scratch.
It should be OK to run the edeliver commands from your macOS, as long as you have BUILD_HOST set to an Ubuntu machine. Make sure your build host has the same Erlang/Elixir versions as your development environment.
Following the DO tutorial, youāre going to build and deploy to the same machine. Your mileage may vary, I have a local VM that I use to build so I donāt need to install development dependencies on my production nodes.
Yep⦠BUILD_HOST is set to the Ubuntu machine. Any tips on how to get the versions in sync? I am downloading the latest version for Ubuntu (esl-erlang_21.0-1_ubuntu_artful_amd64.deb) and the version is 10.0;
Building and installing from source is probably the only way then. But if you build and deploy on Ubuntu, Iām not sure what is going on with your problem.