11defmodule Makina.Docker do
2- @ doc """
2+ @ moduledoc """
33 Module that contains all docker-related cli command building functions.
44 On their own these do not do anything except returning a correctly formatted
55 command that should then be executed over SSH.
@@ -8,6 +8,9 @@ defmodule Makina.Docker do
88 alias Makina.Models.Server
99 alias Makina.Models.Application
1010
11+ @ doc """
12+ Prepares `docker run` command based on the application being deployed
13+ """
1114 def run ( % Server { } = server , % Application { } = app ) do
1215 docker ( server , "run" , [
1316 "-d" ,
@@ -26,6 +29,9 @@ defmodule Makina.Docker do
2629 ] )
2730 end
2831
32+ @ doc """
33+ Prepares the `docker inspect` command for a give container
34+ """
2935 def inspect ( % Server { } = server , % Application { } = app ) do
3036 docker ( server , "inspect" , [ app_name ( app ) ] , fn
3137 { :ok , result } ->
@@ -41,6 +47,16 @@ defmodule Makina.Docker do
4147 end )
4248 end
4349
50+ def login ( % Server { } = server , % Application { } = app ) do
51+ docker ( server , "login" , [
52+ app . docker_registry . host ,
53+ "-u" ,
54+ app . docker_registry . user ,
55+ "-p" ,
56+ app . docker_registry . password
57+ ] )
58+ end
59+
4460 defp app_name ( % Application { __scope__: [ ] } = app ) do
4561 app . name
4662 end
@@ -96,7 +112,7 @@ defmodule Makina.Docker do
96112 defp ports ( % Application { } = app ) do
97113 app . exposed_ports
98114 |> Enum . flat_map ( fn p ->
99- [ "-p" , "#{ p . internal } :#{ p . external } " ]
115+ [ "-p" , "#{ p . external } :#{ p . internal } " ]
100116 end )
101117 end
102118
0 commit comments