@@ -3,17 +3,18 @@ package docker
33import (
44 "context"
55 "fmt"
6- "github.com/Wing924/shellwords"
7- "github.com/discourse/discourse_docker/launcher_go/v2/config"
8- "github.com/discourse/discourse_docker/launcher_go/v2/utils"
9- "golang.org/x/sys/unix"
106 "io"
117 "os"
128 "os/exec"
139 "runtime"
1410 "strings"
1511 "syscall"
1612 "time"
13+
14+ "github.com/Wing924/shellwords"
15+ "github.com/discourse/discourse_docker/launcher_go/v2/config"
16+ "github.com/discourse/discourse_docker/launcher_go/v2/utils"
17+ "golang.org/x/sys/unix"
1718)
1819
1920type DockerBuilder struct {
@@ -91,6 +92,7 @@ func (r *DockerRunner) Run() error {
9192 return unix .Kill (- cmd .Process .Pid , unix .SIGINT )
9293 }
9394 }
95+
9496 cmd .Env = r .Config .EnvArray (true )
9597
9698 if r .DryRun {
@@ -113,54 +115,66 @@ func (r *DockerRunner) Run() error {
113115 cmd .Args = append (cmd .Args , "--env" )
114116 cmd .Args = append (cmd .Args , e )
115117 }
118+
116119 for k , v := range r .Config .Labels {
117120 cmd .Args = append (cmd .Args , "--label" )
118121 cmd .Args = append (cmd .Args , k + "=" + v )
119122 }
123+
120124 if ! r .SkipPorts {
121125 for _ , v := range r .Config .Expose {
122126 if strings .Contains (v , ":" ) {
123- cmd .Args = append (cmd .Args , "-p " )
127+ cmd .Args = append (cmd .Args , "--publish " )
124128 cmd .Args = append (cmd .Args , v )
125129 } else {
126130 cmd .Args = append (cmd .Args , "--expose" )
127131 cmd .Args = append (cmd .Args , v )
128132 }
129133 }
130134 }
135+
131136 for _ , v := range r .Config .Volumes {
132- cmd .Args = append (cmd .Args , "-v " )
137+ cmd .Args = append (cmd .Args , "--volume " )
133138 cmd .Args = append (cmd .Args , v .Volume .Host + ":" + v .Volume .Guest )
134139 }
140+
135141 for _ , v := range r .Config .Links {
136142 cmd .Args = append (cmd .Args , "--link" )
137143 cmd .Args = append (cmd .Args , v .Link .Name + ":" + v .Link .Alias )
138144 }
145+
139146 cmd .Args = append (cmd .Args , "--shm-size=512m" )
147+
140148 if r .Rm {
141149 cmd .Args = append (cmd .Args , "--rm" )
142150 }
151+
143152 if r .Restart {
144153 cmd .Args = append (cmd .Args , "--restart=always" )
145154 } else {
146155 cmd .Args = append (cmd .Args , "--restart=no" )
147156 }
157+
148158 if r .Detatch {
149159 cmd .Args = append (cmd .Args , "-d" )
150160 }
161+
151162 cmd .Args = append (cmd .Args , "-i" )
152163
153164 // Docker args override settings above
154165 for _ , f := range r .Config .DockerArgs () {
155166 cmd .Args = append (cmd .Args , f )
156167 }
168+
157169 for _ , f := range r .ExtraFlags {
158170 cmd .Args = append (cmd .Args , f )
159171 }
172+
160173 cmd .Args = append (cmd .Args , "-h" )
161174 cmd .Args = append (cmd .Args , r .Hostname )
162175 cmd .Args = append (cmd .Args , "--name" )
163176 cmd .Args = append (cmd .Args , r .ContainerId )
177+
164178 if len (r .CustomImage ) > 0 {
165179 cmd .Args = append (cmd .Args , r .CustomImage )
166180 } else {
@@ -176,7 +190,9 @@ func (r *DockerRunner) Run() error {
176190 cmd .Stderr = os .Stderr
177191 cmd .Stdin = r .Stdin
178192 }
193+
179194 runner := utils .CmdRunner (cmd )
195+
180196 if r .DryRun {
181197 fmt .Println (cmd )
182198 } else {
0 commit comments