@@ -22,6 +22,7 @@ import (
22
22
"github.com/docker/cli/templates"
23
23
"github.com/docker/docker/api/types/swarm"
24
24
"github.com/docker/docker/api/types/system"
25
+ "github.com/docker/docker/client"
25
26
"github.com/docker/docker/registry"
26
27
"github.com/docker/go-units"
27
28
"github.com/spf13/cobra"
@@ -98,21 +99,15 @@ func runInfo(ctx context.Context, cmd *cobra.Command, dockerCli command.Cli, opt
98
99
}
99
100
100
101
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.
104
108
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
- }
115
109
}
110
+ info .Info = & dinfo
116
111
}
117
112
118
113
if opts .format == "" {
0 commit comments