diff --git a/cli/command/cli.go b/cli/command/cli.go index 3e5089f80e..222ba0345c 100644 --- a/cli/command/cli.go +++ b/cli/command/cli.go @@ -370,7 +370,7 @@ func (cli *DockerCli) ContextStore() store.Store { // order of preference: // // 1. The "--context" command-line option. -// 2. The "DOCKER_CONTEXT" environment variable. +// 2. The "DOCKER_CONTEXT" environment variable ([EnvOverrideContext]). // 3. The current context as configured through the in "currentContext" // field in the CLI configuration file ("~/.docker/config.json"). // 4. If no context is configured, use the "default" context. @@ -412,7 +412,7 @@ func resolveContextName(opts *cliflags.ClientOptions, config *configfile.ConfigF if os.Getenv(client.EnvOverrideHost) != "" { return DefaultContextName } - if ctxName := os.Getenv("DOCKER_CONTEXT"); ctxName != "" { + if ctxName := os.Getenv(EnvOverrideContext); ctxName != "" { return ctxName } if config != nil && config.CurrentContext != "" { diff --git a/cli/command/defaultcontextstore.go b/cli/command/defaultcontextstore.go index 95f89fc6ff..203900e2fc 100644 --- a/cli/command/defaultcontextstore.go +++ b/cli/command/defaultcontextstore.go @@ -11,6 +11,12 @@ import ( const ( // DefaultContextName is the name reserved for the default context (config & env based) DefaultContextName = "default" + + // EnvOverrideContext is the name of the environment variable that can be + // used to override the context to use. If set, it overrides the context + // that's set in the CLI's configuration file, but takes no effect if the + // "DOCKER_HOST" env-var is set (which takes precedence. + EnvOverrideContext = "DOCKER_CONTEXT" ) // DefaultContext contains the default context data for all endpoints