@@ -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