<div dir="ltr">The problems you've experienced would happen with many other platforms (such as Python or even C). You tried to compile something with optional dependencies that you needed but the dependencies weren't there at the time. The configure and build succeeded but didn't provide the features you needed so it ended up as failure. Nothing about this is Erlang lore, it's just general build/ops stuff. The only Erlang knowledge required to solve your issue was to know how to read an Erlang traceback (granted, these are kinda backwards and line-noisy at first glance), and to know that the crypto module depends on OpenSSL.<div>
<br></div><div>Any way to enforce that the build system is in some specific configuration before you start building things is sufficient to keep things in working order. Ansible, Puppet, Chef, Nix, CFEngine, etc. are all reasonable solutions to this and make the environment easy enough to reproduce.</div>
<div><br></div><div>A better way might be to use Erlang releases for deployment, where you would deploy an entirely self-sufficient Erlang environment to your servers. The build would happen in one place and the deployment servers would only need to have the shared libraries that the runtime needs (OpenSSL and a few other things) which are probably already installed in a stock distribution. This would make the filesystem isolation the Docker provides mostly irrelevant, but using containers might still make sense for other reasons (security, for example).<br>
<div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, May 7, 2014 at 11:18 AM,  <span dir="ltr"><<a href="mailto:lloyd@writersglen.com" target="_blank">lloyd@writersglen.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
Thanks to generous help from folks on this list, I'm moving back to system stability. But my experience raises several questions:<br>
<br>
1) Given the issues that I've run into compiling a simple development environment, all of my inadvertent doing no doubt, what can I expect when I set out to deploy a production stack to multiple remote servers?<br>
<br>
2) Are there best practices lurking in the unpublished lore of the Erlang community (or published for that matter) for dealing with the problem of keeping development and production systems service-fit and up-to-date?<br>

<br>
3) Would Ansible help?<br>
<br>
4) Does it make sense to consider development and deployment under Docker--- presuming it's production ready by the time I'm ready?<br>
<br>
5) Is there a better way?<br>
<br>
Thanks again to all,<br>
<br>
Lloyd<br>
<div class=""><br>
<br>
<br>
<br>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
</div><a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div><br></div>