[erlang-questions] Reltool anyone?

Dmitry Kolesnikov <>
Mon Aug 18 09:24:02 CEST 2014


Hello, 

Yes, there are two options:

a) use pure retool, you need to have a cross compiled OTP. The reltool allows you to define OTP root_dir at sys section, e.g:  
   {root_dir, "/usr/local/otp_R16B03_arm"}
   {root_dir, "/usr/local/otp_R16B03_linux"}

The reltool assembles an application at inject “cross-compiled” binaries for VM. This option would not work if you are using native flag.  

b) use dockers. I’ve made a Makefile to “wrap” rebar, reltool and dockers work-flow. https://github.com/fogfish/makefile

Personally, I am using option A for Erlang/ARM deployment, the option B is used for production deployment to AWS EC2 

Best Regards, 
Dmitry


On 18 Aug 2014, at 10:12, Ivan Uemlianin <> wrote:

> Dear Dmitry
> 
> Is (3) possible now? Build on a Mac; deploy to a linux/bsd machine?
> 
> Thanks
> 
> Ivan
> 
> --
> festina lente
> 
> 
>> On 18 Aug 2014, at 07:43, Dmitry Kolesnikov <> wrote:
>> 
>> Hello,
>> 
>> There is a needs to build standalone Erlang software service deployable to hosts on network. There was an multiple attempt to use various build solution such as GNU autotools with custom M4 macros, application packaging as depicted by Erlang OTP In Action, rebar, reltool and other. However, there is set of requirements which needs to be addressed to simplify production operation, see section below. Rebar and reltool with naive Makefile glue allows to achieve then.
>> 
>> Requirements:
>> 
>> 1. The production deployment of Erlang application performed on hosts running vanilla Linux distribution. The major assumption -- Erlang/OTP runtime is not installed on target host. The application needs to package and deliver Erlang runtime along with its code.
>> 
>> 2. The application life-cycle management is performed using service management tools supplied by Linux distribution. The operation team can start / stop target application as a daemons using unified approach (e.g. service xxx start).
>> 
>> 3. The application development and operation is performed on various environment; the development environment is built on Mac OS; the production system uses Linux distributions. The developer shall have ability to assemble of production image without access to dedicated build machines.
>> 
>> 4. The assembly of production images always managed from source code repository either private or public git. It slows down procedure of package assembly but ensure consistency of delivered code.
>> 
>> I found reltool + rebar + Makefile is perfect approach to address those requirements. These tools gives you enough customisation power with very simple semantic.   
>> 
>> Best Regards, 
>> Dmitry
>> 
>>> On 17 Aug 2014, at 19:07, Francesco Cesarini <> wrote:
>>> 
>>> Hi,
>>> 
>>> I was wrapping up the chapter on release handling for the OTP book and never having used it before, decided to take a look at reltool. Is anyone using it? I am finding it counter intuitive and struggling to see how it simplifies the task of creating releases.
>>> 
>>> Feel free to reply to the list or ping me privately.
>>> 
>>> Thanks,
>>> F
>>> 
>>> -- 
>>> Founder & Technical Director
>>> Erlang Solutions Ltd.
>>> 
>>> _______________________________________________
>>> erlang-questions mailing list
>>> 
>>> http://erlang.org/mailman/listinfo/erlang-questions
>> 
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list