diff --git a/cmd/nerdctl/container/container_run.go b/cmd/nerdctl/container/container_run.go index f498f2df6d5..67b797bdce9 100644 --- a/cmd/nerdctl/container/container_run.go +++ b/cmd/nerdctl/container/container_run.go @@ -435,6 +435,12 @@ func runAction(cmd *cobra.Command, args []string) error { if err != nil { return err } + + statusC, err := task.Wait(ctx) + if err != nil { + return err + } + if err := task.Start(ctx); err != nil { return err } @@ -454,10 +460,6 @@ func runAction(cmd *cobra.Command, args []string) error { } } - statusC, err := task.Wait(ctx) - if err != nil { - return err - } select { // io.Wait() would return when either 1) the user detaches from the container OR 2) the container is about to exit. // diff --git a/pkg/containerutil/containerutil.go b/pkg/containerutil/containerutil.go index 64352f75e7b..60da6f11895 100644 --- a/pkg/containerutil/containerutil.go +++ b/pkg/containerutil/containerutil.go @@ -279,7 +279,10 @@ func Start(ctx context.Context, container containerd.Container, isAttach bool, i if err != nil { return err } - + statusC, err := task.Wait(ctx) + if err != nil { + return err + } if err := task.Start(ctx); err != nil { return err } @@ -293,11 +296,6 @@ func Start(ctx context.Context, container containerd.Container, isAttach bool, i } sigc := signalutil.ForwardAllSignals(ctx, task) defer signalutil.StopCatch(sigc) - - statusC, err := task.Wait(ctx) - if err != nil { - return err - } select { // io.Wait() would return when either 1) the user detaches from the container OR 2) the container is about to exit. //