@@ -18,6 +18,7 @@ package compose
1818
1919import (
2020 "context"
21+ "errors"
2122 "fmt"
2223 "os"
2324 "os/signal"
@@ -36,11 +37,6 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.
3637 return 0 , err
3738 }
3839
39- start := cmd .NewStartOptions ()
40- start .OpenStdin = ! opts .Detach && opts .Interactive
41- start .Attach = ! opts .Detach
42- start .Containers = []string {containerID }
43-
4440 // remove cancellable context signal handler so we can forward signals to container without compose to exit
4541 signal .Reset ()
4642
@@ -49,9 +45,14 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.
4945 go cmd .ForwardAllSignals (ctx , s .dockerCli , containerID , sigc )
5046 defer signal .Stop (sigc )
5147
52- err = cmd .RunStart (s .dockerCli , & start )
53- if sterr , ok := err .(cli.StatusError ); ok {
54- return sterr .StatusCode , nil
48+ err = cmd .RunStart (s .dockerCli , & cmd.StartOptions {
49+ OpenStdin : ! opts .Detach && opts .Interactive ,
50+ Attach : ! opts .Detach ,
51+ Containers : []string {containerID },
52+ })
53+ var stErr cli.StatusError
54+ if errors .As (err , & stErr ) {
55+ return stErr .StatusCode , nil
5556 }
5657 return 0 , err
5758}
0 commit comments