From 23affe41ecfba992ebf721a6863a0bc2dfbcb1dd Mon Sep 17 00:00:00 2001 From: Kirill Shirinkin <fodojyko@gmail.com> Date: Tue, 4 Apr 2017 11:22:10 +0200 Subject: [PATCH] Enable docker creds store --- helpers/docker/auth_config.go | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/helpers/docker/auth_config.go b/helpers/docker/auth_config.go index aba59bcca..fc13b241a 100644 --- a/helpers/docker/auth_config.go +++ b/helpers/docker/auth_config.go @@ -13,6 +13,7 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/cliconfig/configfile" + "github.com/docker/docker/cliconfig/credentials" "github.com/docker/docker/pkg/homedir" ) @@ -95,7 +96,36 @@ func ReadAuthConfigsFromReader(r io.Reader) (map[string]types.AuthConfig, error) return nil, err } - return config.AuthConfigs, nil + auths := make(map[string]types.AuthConfig) + addAll(auths, config.AuthConfigs) + + if config.CredentialsStore != "" { + authsFromCredentialsStore, err := readAuthConfigsFromCredentialsStore(config) + if err != nil { + return nil, err + } + addAll(auths, authsFromCredentialsStore) + } + + return auths, nil +} + +func readAuthConfigsFromCredentialsStore(config *configfile.ConfigFile) (map[string]types.AuthConfig, error) { + store := credentials.NewNativeStore(config, config.CredentialsStore) + + newAuths, err := store.GetAll() + + if err != nil { + return nil, err + } + + return newAuths, nil +} + +func addAll(to, from map[string]types.AuthConfig) { + for reg, ac := range from { + to[reg] = ac + } } // ResolveDockerAuthConfig taken from: https://github.com/docker/docker/blob/master/registry/auth.go -- GitLab