diff --git a/cmd/ctr/commands/run/run.go b/cmd/ctr/commands/run/run.go index bf0ebfe5c46f..55cff7ab514f 100644 --- a/cmd/ctr/commands/run/run.go +++ b/cmd/ctr/commands/run/run.go @@ -97,7 +97,7 @@ var Command = cli.Command{ Flags: append([]cli.Flag{ cli.BoolFlag{ Name: "rm", - Usage: "remove the container after running", + Usage: "remove the container after running, cannot be used with --detach", }, cli.BoolFlag{ Name: "null-io", @@ -109,7 +109,7 @@ var Command = cli.Command{ }, cli.BoolFlag{ Name: "detach,d", - Usage: "detach from the task after it has started execution", + Usage: "detach from the task after it has started execution, cannot be used with --rm", }, cli.StringFlag{ Name: "fifo-dir", @@ -136,6 +136,7 @@ var Command = cli.Command{ id string ref string + rm = context.Bool("rm") tty = context.Bool("tty") detach = context.Bool("detach") config = context.IsSet("config") @@ -158,6 +159,10 @@ var Command = cli.Command{ if id == "" { return errors.New("container id must be provided") } + if rm && detach { + return errors.New("flags --detach and --rm cannot be specified together") + } + client, ctx, cancel, err := commands.NewClient(context) if err != nil { return err @@ -167,7 +172,7 @@ var Command = cli.Command{ if err != nil { return err } - if context.Bool("rm") && !detach { + if rm && !detach { defer container.Delete(ctx, containerd.WithSnapshotCleanup) } var con console.Console