ソースを参照

pkg/compose: RunOneOffContainer: don't use NewStartOptions()

It's no longer used in docker/cli, and doesn't do anything other than
creating an empty struct, so replacing it (as we're planning to
deprecate that function)

Signed-off-by: Sebastiaan van Stijn <[email protected]>
Sebastiaan van Stijn 2 年 前
コミット
4eb43c53fa
1 ファイル変更9 行追加8 行削除
  1. 9 8
      pkg/compose/run.go

+ 9 - 8
pkg/compose/run.go

@@ -18,6 +18,7 @@ package compose
 
 import (
 	"context"
+	"errors"
 	"fmt"
 	"os"
 	"os/signal"
@@ -36,11 +37,6 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.
 		return 0, err
 	}
 
-	start := cmd.NewStartOptions()
-	start.OpenStdin = !opts.Detach && opts.Interactive
-	start.Attach = !opts.Detach
-	start.Containers = []string{containerID}
-
 	// remove cancellable context signal handler so we can forward signals to container without compose to exit
 	signal.Reset()
 
@@ -49,9 +45,14 @@ func (s *composeService) RunOneOffContainer(ctx context.Context, project *types.
 	go cmd.ForwardAllSignals(ctx, s.dockerCli, containerID, sigc)
 	defer signal.Stop(sigc)
 
-	err = cmd.RunStart(s.dockerCli, &start)
-	if sterr, ok := err.(cli.StatusError); ok {
-		return sterr.StatusCode, nil
+	err = cmd.RunStart(s.dockerCli, &cmd.StartOptions{
+		OpenStdin:  !opts.Detach && opts.Interactive,
+		Attach:     !opts.Detach,
+		Containers: []string{containerID},
+	})
+	var stErr cli.StatusError
+	if errors.As(err, &stErr) {
+		return stErr.StatusCode, nil
 	}
 	return 0, err
 }