@@ -136,9 +136,10 @@ func setupHelpCommand(dockerCli command.Cli, rootCmd, helpCmd *cobra.Command) {
136136 helpCmd .Run = nil
137137 helpCmd .RunE = func (c * cobra.Command , args []string ) error {
138138 if len (args ) > 0 {
139- helpcmd , err := pluginmanager .PluginRunCommand (dockerCli , args [0 ], rootCmd )
139+ helpRunCmd , err := pluginmanager .PluginRunCommand (dockerCli , args [0 ], rootCmd )
140140 if err == nil {
141- return helpcmd .Run ()
141+ helpcmd := command .InstrumentPluginCommand (helpRunCmd , dockerCli )
142+ return helpcmd .TimedRun (c .Context ())
142143 }
143144 if ! pluginmanager .IsNotFound (err ) {
144145 return errors .Errorf ("unknown help topic: %v" , strings .Join (args , " " ))
@@ -159,11 +160,12 @@ func tryRunPluginHelp(dockerCli command.Cli, ccmd *cobra.Command, cargs []string
159160 if err != nil {
160161 return err
161162 }
162- helpcmd , err := pluginmanager .PluginRunCommand (dockerCli , cmd .Name (), root )
163+ helpRunCmd , err := pluginmanager .PluginRunCommand (dockerCli , cmd .Name (), root )
163164 if err != nil {
164165 return err
165166 }
166- return helpcmd .Run ()
167+ helpcmd := command .InstrumentPluginCommand (helpRunCmd , dockerCli )
168+ return helpcmd .TimedRun (ccmd .Context ())
167169}
168170
169171func setHelpFunc (dockerCli command.Cli , cmd * cobra.Command ) {
@@ -225,10 +227,11 @@ func setValidateArgs(dockerCli command.Cli, cmd *cobra.Command) {
225227}
226228
227229func tryPluginRun (dockerCli command.Cli , cmd * cobra.Command , subcommand string , envs []string ) error {
228- plugincmd , err := pluginmanager .PluginRunCommand (dockerCli , subcommand , cmd )
230+ pluginRunCmd , err := pluginmanager .PluginRunCommand (dockerCli , subcommand , cmd )
229231 if err != nil {
230232 return err
231233 }
234+ plugincmd := command .InstrumentPluginCommand (pluginRunCmd , dockerCli )
232235
233236 // Establish the plugin socket, adding it to the environment under a
234237 // well-known key if successful.
@@ -279,7 +282,7 @@ func tryPluginRun(dockerCli command.Cli, cmd *cobra.Command, subcommand string,
279282 }
280283 }()
281284
282- if err := plugincmd .Run ( ); err != nil {
285+ if err := plugincmd .TimedRun ( cmd . Context () ); err != nil {
283286 statusCode := 1
284287 exitErr , ok := err .(* exec.ExitError )
285288 if ! ok {
@@ -314,6 +317,8 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error {
314317
315318 dockerCli .InstrumentCobraCommands (cmd )
316319
320+ cmd .SetContext (ctx )
321+
317322 var envs []string
318323 args , os .Args , envs , err = processAliases (dockerCli , cmd , args , os .Args )
319324 if err != nil {
@@ -354,7 +359,7 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error {
354359 // We've parsed global args already, so reset args to those
355360 // which remain.
356361 cmd .SetArgs (args )
357- err = cmd .ExecuteContext ( ctx )
362+ err = cmd .Execute ( )
358363
359364 // If the command is being executed in an interactive terminal
360365 // and hook are enabled, run the plugin hooks.
0 commit comments