I’ve trying to create a kind of runner for a set of components, where each component runs on a separate node, and each component is an independent application.
I’ve stolen code from the swarm cluster tests, and I’m successfully creating nodes which seem to contain the Elixir runtime.
As I initialize each node, I make it File.cd
into the application’s directory.
However, inside the node, it can’t find the mix.exs
file, and so I can’t load the app and its dependencies.
Here we are after doing a user switch into the slave node:
iex(wom...@127.0.0.1)5> ls
.git .gitignore README.md _build assets config
deps lib mix.exs mix.lock test
iex(wom...@127.0.0.1)6> Mix.Project.get
nil
It feels like I’m making this too difficult: there must be an easier way to kick off applications. If not, any ideas on my directory issue?
Cheers
Dave
--
You received this message because you are subscribed to the Google Groups "elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/a744b3ae-3189-4f26-8371-c471f0914866%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/CAK%3D%2B-TvLmkHtHKvg-DfpRbTH1fdTp9LRJ4ured4SncB%3Dos_bUw%40mail.gmail.com.
We also do a similar setup in firenest test suite: https://github.com/phoenixframework/firenest/blob/master/test/shared/test.ex
Oh, and just to clarify: I'm trying to do this in dev mode, so I want to run the application from its project directory.I may have to bit the bullet and just spawn a shell and run mix in it... :(
--
You received this message because you are subscribed to the Google Groups "elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-core+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/elixir-lang-core/309dde84-a974-4176-b5f9-ff9fd93a3322%40googlegroups.com.
I would second the boot loader approach when viable, but since it's not in your case, then there is nothing particularly special about how the paths are set up, you just need to add the lib directory from your Elixir install (e.g. `-pa <path to elixir/lib/*/ebin`) and the build directory where the project code is (e.g. `-pa _build/<env>/lib/*/ebin`). If you need to compile the project as part of this process, then indeed you might have better luck just running Mix via `System.cmd` - there isn't necessarily anything wrong with that approach, but then it's entirely up to you to ensure that the spawned nodes are cleaned up before shutting down the spawning node.
On Thu, Feb 15, 2018 at 4:54 PM, pragdave <prag...@gmail.com> wrote:
Oh, and just to clarify: I'm trying to do this in dev mode, so I want to run the application from its project directory.I may have to bit the bullet and just spawn a shell and run mix in it... :(
--
You received this message because you are subscribed to the Google Groups "elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elixir-lang-co...@googlegroups.com.