diff --git a/cli/command/cli.go b/cli/command/cli.go index 47e9bdfffab0..eab0c7c2c208 100644 --- a/cli/command/cli.go +++ b/cli/command/cli.go @@ -208,13 +208,12 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...Initialize } cli.configFile = cliconfig.LoadDefaultConfigFile(cli.err) - + cli.contextStore = store.New(cliconfig.ContextStoreDir(), cli.contextStoreConfig) + cli.currentContext, err = resolveContextName(opts.Common, cli.configFile, cli.contextStore) + if err != nil { + return err + } if cli.client == nil { - cli.contextStore = store.New(cliconfig.ContextStoreDir(), cli.contextStoreConfig) - cli.currentContext, err = resolveContextName(opts.Common, cli.configFile, cli.contextStore) - if err != nil { - return err - } endpoint, err := resolveDockerEndpoint(cli.contextStore, cli.currentContext, opts.Common) if err != nil { return errors.Wrap(err, "unable to resolve docker endpoint") diff --git a/cli/command/cli_test.go b/cli/command/cli_test.go index 0bbe6df05528..926d43f2ddf7 100644 --- a/cli/command/cli_test.go +++ b/cli/command/cli_test.go @@ -295,3 +295,12 @@ func TestNewDockerCliAndOperators(t *testing.T) { assert.NilError(t, err) assert.Equal(t, string(errStream), "error") } + +func TestInitializeShouldAlwaysCreateTheContextStore(t *testing.T) { + cli, err := NewDockerCli() + assert.NilError(t, err) + assert.NilError(t, cli.Initialize(flags.NewClientOptions(), WithInitializeClient(func(cli *DockerCli) (client.APIClient, error) { + return client.NewClientWithOpts() + }))) + assert.Check(t, cli.ContextStore() != nil) +}