func()

in cli/configure-docker.go [95:141]


func (c *dockerConfigCmd) setConfig(dockerConfig *configfile.ConfigFile, helperSuffix string) subcommands.ExitStatus {
	// We always overwrite since there's no way that we can accidentally
	// disable other credentials as a registry-specific credential helper.
	if dockerConfig.CredentialHelpers == nil {
		dockerConfig.CredentialHelpers = map[string]string{}
	}

	var registries []string
	if c.registries == "" {
		fmt.Println("Configuring default registries....")
		fmt.Println("WARNING: A long list of credential helpers may cause delays running 'docker build'.")
		fmt.Println("We recommend passing the registry names via the --registries flag for the specific registries you are using")
		if c.includeArtifactRegistry {
			fmt.Println("Adding config for all GCR and AR registries.")
			registries = append(config.DefaultGCRRegistries[:], config.DefaultARRegistries[:]...)
		} else {
			fmt.Println("Adding config for all GCR registries.")
			registries = config.DefaultGCRRegistries[:]
		}
	} else {
		fmt.Println("Configuring supplied registries....")
		strReader := strings.NewReader(c.registries)
		var err error
		registries, err = csv.NewReader(strReader).Read()
		if err != nil {
			printErrorln("Unable to parse `--registries` value %q: %v", c.registries, err)
			return subcommands.ExitFailure
		}
		fmt.Printf("Adding config for registries: %s\n", strings.Join(registries, ","))
	}

	for _, registry := range registries {
		dockerConfig.CredentialHelpers[strings.TrimSpace(registry)] = helperSuffix
	}

	if err := dockerConfig.Save(); err != nil {
		printErrorln("Unable to save docker config: %v", err)
		return subcommands.ExitFailure
	}

	if c.includeArtifactRegistry {
		fmt.Printf("%s configured to use this credential helper for GCR and AR registries\n", dockerConfig.Filename)
	} else {
		fmt.Printf("%s configured to use this credential helper for GCR registries\n", dockerConfig.Filename)
	}
	return subcommands.ExitSuccess
}