diff --git a/cli/command/cli.go b/cli/command/cli.go index f7f428b11b05..e405c2cc4f6d 100644 --- a/cli/command/cli.go +++ b/cli/command/cli.go @@ -316,7 +316,11 @@ func newAPIClientFromEndpoint(ep docker.Endpoint, configFile *configfile.ConfigF opts = append(opts, withCustomHeaders) } opts = append(opts, extraOpts...) - return client.New(opts...) + apiClient, err := client.New(opts...) + if err != nil { + return nil, err + } + return apiClient, nil } func resolveDockerEndpoint(s store.Reader, contextName string) (docker.Endpoint, error) { diff --git a/cli/command/cli_test.go b/cli/command/cli_test.go index be5bcabfbbdb..27be8d348cdc 100644 --- a/cli/command/cli_test.go +++ b/cli/command/cli_test.go @@ -132,6 +132,15 @@ func TestNewAPIClientFromFlagsWithAPIVersionFromEnv(t *testing.T) { assert.Equal(t, apiclient.ClientVersion(), expectedVersion) } +func TestNewAPIClientFromFlagsWithInvalidAPIVersionFromEnv(t *testing.T) { + t.Setenv("DOCKER_API_VERSION", "1") + t.Setenv("DOCKER_HOST", ":2375") + + apiClient, err := NewAPIClientFromFlags(&flags.ClientOptions{}, &configfile.ConfigFile{}) + assert.ErrorContains(t, err, "invalid API version") + assert.Check(t, apiClient == nil) +} + type fakeClient struct { client.Client pingFunc func() (client.PingResult, error)