add flag -d for ctr t exec to run a service in container
@@ -40,6 +40,10 @@ var execCommand = cli.Command{
Name: "tty,t",
Usage: "allocate a TTY for the container",
},
+ cli.BoolFlag{
+ Name: "detach,d",
+ Usage: "detach from the task after it has started execution",
+ },
cli.StringFlag{
Name: "exec-id",
Usage: "exec specific id for the process",
@@ -54,6 +58,7 @@ var execCommand = cli.Command{
id = context.Args().First()
args = context.Args().Tail()
tty = context.Bool("tty")
+ detach = context.Bool("detach")
)
if id == "" {
return errors.New("container id must be provided")
@@ -104,6 +109,7 @@ var execCommand = cli.Command{
return err
}
}
+ if !detach {
if tty {
if err := HandleConsoleResize(ctx, process, con); err != nil {
logrus.WithError(err).Error("console resize")
@@ -112,10 +118,14 @@ var execCommand = cli.Command{
sigc := commands.ForwardAllSignals(ctx, process)
defer commands.StopCatch(sigc)
}
+ }
if err := process.Start(ctx); err != nil {
return err
}
+ if detach {
+ return nil
+ }
status := <-statusC
code, _, err := status.Result()
if err != nil {
