plugins/hooks: run hooks when exit code != 0

Particularly for cases such as `docker exec -it`, it's relevant that the CLI
still executes hooks even if the exec exited with a non-zero exit code,
since this is can be part of a normal `docker exec` invocation depending on
how the user exits.

In the future, this might also be interesting to allow plugins to run
hooks after an error so they can offer error-state recovery suggestions,
although this would require additional work to give the plugin more
information about the failed execution.

Signed-off-by: Laura Brehm <laurabrehm@hey.com>
This commit is contained in:
Laura Brehm 2024-04-17 15:21:08 +01:00
parent c0cc22db58
commit c449c1a49d
No known key found for this signature in database
GPG Key ID: CFBF847B4A313468
1 changed files with 1 additions and 4 deletions

View File

@ -353,9 +353,6 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error {
// which remain. // which remain.
cmd.SetArgs(args) cmd.SetArgs(args)
err = cmd.Execute() err = cmd.Execute()
if err != nil {
return err
}
// If the command is being executed in an interactive terminal, // If the command is being executed in an interactive terminal,
// run the plugin hooks (but don't throw an error if something misbehaves) // run the plugin hooks (but don't throw an error if something misbehaves)
@ -363,7 +360,7 @@ func runDocker(ctx context.Context, dockerCli *command.DockerCli) error {
_ = pluginmanager.RunPluginHooks(dockerCli, cmd, subCommand, "", args) _ = pluginmanager.RunPluginHooks(dockerCli, cmd, subCommand, "", args)
} }
return nil return err
} }
type versionDetails interface { type versionDetails interface {