Skip to content

Commit 3c82131

Browse files
committed
system/info: failure to connect to docker socket should propagate error
Signed-off-by: Alano Terblanche <[email protected]>
1 parent 650b45a commit 3c82131

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

cli/command/system/info.go

+8-13
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/docker/cli/templates"
2323
"github.com/docker/docker/api/types/swarm"
2424
"github.com/docker/docker/api/types/system"
25+
"github.com/docker/docker/client"
2526
"github.com/docker/docker/registry"
2627
"github.com/docker/go-units"
2728
"github.com/spf13/cobra"
@@ -98,21 +99,15 @@ func runInfo(ctx context.Context, cmd *cobra.Command, dockerCli command.Cli, opt
9899
}
99100

100101
if needsServerInfo(opts.format, info) {
101-
if dinfo, err := dockerCli.Client().Info(ctx); err == nil {
102-
info.Info = &dinfo
103-
} else {
102+
dinfo, err := dockerCli.Client().Info(ctx)
103+
if err != nil && client.IsErrConnectionFailed(err) {
104+
return cli.StatusError{StatusCode: 125, Cause: err}
105+
} else if err != nil {
106+
// if a format is provided, print the error, as it may be hidden
107+
// otherwise if the template doesn't include the ServerErrors field.
104108
info.ServerErrors = append(info.ServerErrors, err.Error())
105-
if opts.format == "" {
106-
// reset the server info to prevent printing "empty" Server info
107-
// and warnings, but don't reset it if a custom format was specified
108-
// to prevent errors from Go's template parsing during format.
109-
info.Info = nil
110-
} else {
111-
// if a format is provided, print the error, as it may be hidden
112-
// otherwise if the template doesn't include the ServerErrors field.
113-
fprintln(dockerCli.Err(), err)
114-
}
115109
}
110+
info.Info = &dinfo
116111
}
117112

118113
if opts.format == "" {

0 commit comments

Comments
 (0)