@@ -18,6 +18,7 @@ package compose
18
18
19
19
import (
20
20
"context"
21
+ "errors"
21
22
"fmt"
22
23
"os"
23
24
"os/signal"
@@ -36,11 +37,6 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.
36
37
return 0 , err
37
38
}
38
39
39
- start := cmd .NewStartOptions ()
40
- start .OpenStdin = ! opts .Detach && opts .Interactive
41
- start .Attach = ! opts .Detach
42
- start .Containers = []string {containerID }
43
-
44
40
// remove cancellable context signal handler so we can forward signals to container without compose to exit
45
41
signal .Reset ()
46
42
@@ -49,9 +45,14 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.
49
45
go cmd .ForwardAllSignals (ctx , s .dockerCli , containerID , sigc )
50
46
defer signal .Stop (sigc )
51
47
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
55
56
}
56
57
return 0 , err
57
58
}
0 commit comments