Now that Distillery 2.0 is out, I’m in a situation where I need to deploy from a Mac (and probably later, from Windows!) to a single-node Ubuntu server. The blog post specifically mentions that cross-compilation support has not evolved.
The various solutions I’m aware of are:
- Using a local Docker container (or VirtualBox VM) to create the release and push it to the server
- Using a “build server”, but at this point with a single-node target, it appears like a waste
- Building the release on the server itself (may work nicely for a staging server, I know some are doing this, but I would like to avoid doing that on a heavily used production server!)
- Having Erlang installed on the server (e.g. using asdf) and using releases without ERTS (
include_erts: falseetc), but then you have to be careful with NIF
- Building from CI (as reminded by @LostKobrakai)
I would love to get more feedback from people who are dealing with this and are happy with their current, 2018-flavored solutions (not involving a build server ideally).