[erlang-questions] Not getting exit_status when using open_port with docker

Maxim Sokhatsky <>
Mon Sep 16 14:26:28 CEST 2013


First of all you do it wrong just because of two things :)

The first thing is erlsh library: https://github.com/proger/erlsh
And the second is erldocker library: https://github.com/proger/erldocker

Moreover if you are interesting in your own Erlang PaaS
you could read the sources of the first Erlang PaaS:

https://github.com/voxoz

Hope this save your time :)

/maxim

________________________________
> Date: Mon, 16 Sep 2013 15:10:48 +0300 
> From:  
> To:  
> Subject: [erlang-questions] Not getting exit_status when using 
> open_port with docker 
> 
> Hi, 
> 
> I'm calling "docker run" from Erlang. 
> http://docs.docker.io/en/latest/commandline/command/run/ 
> I'm using open_port instead of os:cmd to be able to limit the execution time. 
> I'm getting the output of the command 
> but the do_read just keep going and I'm not able to get an exit status 
> from the command. 
> 
> When running "echo 'test'" I'm getting {exit_status, 0}. 
> When running the "docker run" command in the shell, I'm getting the 
> output and it exits. 
> When running any other docker command like "docker ps" I'm getting the 
> exit signal. 
> 
> Is this a problem with how I'm using open_port or something wrong with 
> the "docker run" command? 
> 
> -module(test). 
> 
> -export([run/0]). 
> 
> run() -> 
> Cmd = "sudo docker run ubuntu echo \"test\"", 
> Port = open_port({spawn, Cmd}, [binary, exit_status]), 
> do_read(Port, <<>>). 
> 
> do_read(Port, Data) -> 
> receive 
> {Port,{data, NewData}} -> 
> io:format("data ~p~n", [NewData]), 
> do_read(Port, <<Data/binary, NewData/binary>>); 
> {Port,{exit_status, 0}} -> 
> io:format("exit~n"), 
> case Data of 
> <<"">> -> <<"ok">>; 
> _ -> Data 
> end; 
> E -> 
> io:format("Something: ~p~n", [E]) 
> end. 
> 
> 
> _______________________________________________ erlang-questions 
> mailing list  
> http://erlang.org/mailman/listinfo/erlang-questions 		 	   		  


More information about the erlang-questions mailing list