From 9516ce8e255b29c88c6c50322589773499573612 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Thu, 30 Nov 2023 22:44:53 -0800 Subject: [PATCH] bake: use same auth provider for bake targets The results from credential plugins are cached and this reduces the lookup times. Signed-off-by: Tonis Tiigi --- bake/bake.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bake/bake.go b/bake/bake.go index 4b069402..331b2251 100644 --- a/bake/bake.go +++ b/bake/bake.go @@ -1011,12 +1011,17 @@ func (t *Target) GetName(ectx *hcl.EvalContext, block *hcl.Block, loadDeps func( } func TargetsToBuildOpt(m map[string]*Target, inp *Input) (map[string]build.Options, error) { + // make sure local credentials are loaded multiple times for different targets + dockerConfig := config.LoadDefaultConfigFile(os.Stderr) + authProvider := authprovider.NewDockerAuthProvider(dockerConfig, nil) + m2 := make(map[string]build.Options, len(m)) for k, v := range m { bo, err := toBuildOpt(v, inp) if err != nil { return nil, err } + bo.Session = append(bo.Session, authProvider) m2[k] = *bo } return m2, nil @@ -1247,9 +1252,6 @@ func toBuildOpt(t *Target, inp *Input) (*build.Options, error) { } bo.Platforms = platforms - dockerConfig := config.LoadDefaultConfigFile(os.Stderr) - bo.Session = append(bo.Session, authprovider.NewDockerAuthProvider(dockerConfig, nil)) - secrets, err := buildflags.ParseSecretSpecs(t.Secrets) if err != nil { return nil, err