@@ -106,7 +106,7 @@ func newLaunchCmd() *cobra.Command {
106106 }
107107
108108 if ca , ok := containerApps [app ]; ok {
109- return launchContainerApp (cmd , ca , ep .container , image , port , detach , dryRun )
109+ return launchContainerApp (cmd , ca , ep .container , image , port , detach , appArgs , dryRun )
110110 }
111111 if cli , ok := hostApps [app ]; ok {
112112 return launchHostApp (cmd , app , ep .host , cli , appArgs , dryRun )
@@ -125,6 +125,11 @@ func newLaunchCmd() *cobra.Command {
125125// resolveBaseEndpoints resolves the base URLs (without path) for both
126126// container and host client locations.
127127func resolveBaseEndpoints (runner * standaloneRunner ) (engineEndpoints , error ) {
128+ const (
129+ localhost = "127.0.0.1"
130+ hostDockerInternal = "host.docker.internal"
131+ )
132+
128133 kind := modelRunner .EngineKind ()
129134 switch kind {
130135 case types .ModelRunnerEngineKindDesktop :
@@ -135,8 +140,8 @@ func resolveBaseEndpoints(runner *standaloneRunner) (engineEndpoints, error) {
135140 case types .ModelRunnerEngineKindMobyManual :
136141 ep := strings .TrimRight (modelRunner .URL ("" ), "/" )
137142 containerEP := strings .NewReplacer (
138- "localhost" , "host.docker.internal" ,
139- "127.0.0.1" , "host.docker.internal" ,
143+ "localhost" , hostDockerInternal ,
144+ localhost , hostDockerInternal ,
140145 ).Replace (ep )
141146 return engineEndpoints {container : containerEP , host : ep }, nil
142147 case types .ModelRunnerEngineKindCloud , types .ModelRunnerEngineKindMoby :
@@ -147,12 +152,14 @@ func resolveBaseEndpoints(runner *standaloneRunner) (engineEndpoints, error) {
147152 port := fmt .Sprintf ("%d" , runner .gatewayPort )
148153 return engineEndpoints {
149154 container : "http://" + net .JoinHostPort (runner .gatewayIP , port ),
150- host : "http://" + net .JoinHostPort ("127.0.0.1" , port ),
155+ host : "http://" + net .JoinHostPort (localhost , port ),
151156 }, nil
152157 }
153158 if runner .hostPort != 0 {
159+ hostPort := fmt .Sprintf ("%d" , runner .hostPort )
154160 return engineEndpoints {
155- host : "http://" + net .JoinHostPort ("127.0.0.1" , fmt .Sprintf ("%d" , runner .hostPort )),
161+ container : "http://" + net .JoinHostPort (hostDockerInternal , hostPort ),
162+ host : "http://" + net .JoinHostPort (localhost , hostPort ),
156163 }, nil
157164 }
158165 return engineEndpoints {}, errors .New ("unable to determine standalone runner endpoint" )
@@ -162,7 +169,7 @@ func resolveBaseEndpoints(runner *standaloneRunner) (engineEndpoints, error) {
162169}
163170
164171// launchContainerApp launches a container-based app via "docker run".
165- func launchContainerApp (cmd * cobra.Command , ca containerApp , baseURL string , imageOverride string , portOverride int , detach , dryRun bool ) error {
172+ func launchContainerApp (cmd * cobra.Command , ca containerApp , baseURL string , imageOverride string , portOverride int , detach bool , appArgs [] string , dryRun bool ) error {
166173 img := imageOverride
167174 if img == "" {
168175 img = ca .defaultImage
@@ -187,6 +194,7 @@ func launchContainerApp(cmd *cobra.Command, ca containerApp, baseURL string, ima
187194 dockerArgs = append (dockerArgs , "-e" , e )
188195 }
189196 dockerArgs = append (dockerArgs , img )
197+ dockerArgs = append (dockerArgs , appArgs ... )
190198
191199 if dryRun {
192200 cmd .Printf ("Would run: docker %s\n " , strings .Join (dockerArgs , " " ))
0 commit comments