diff --git a/pkg/container/docker_auth.go b/pkg/container/docker_auth.go index 466c0033..e47fe64a 100644 --- a/pkg/container/docker_auth.go +++ b/pkg/container/docker_auth.go @@ -38,3 +38,24 @@ func LoadDockerAuthConfig(ctx context.Context, image string) (types.AuthConfig, return types.AuthConfig(authConfig), nil } + +func LoadDockerAuthConfigs(ctx context.Context) map[string]types.AuthConfig { + logger := common.Logger(ctx) + config, err := config.Load(config.Dir()) + if err != nil { + logger.Warnf("Could not load docker config: %v", err) + return nil + } + + if !config.ContainsAuth() { + config.CredentialsStore = credentials.DetectDefaultStore(config.CredentialsStore) + } + + creds, _ := config.GetAllCredentials() + authConfigs := make(map[string]types.AuthConfig, len(creds)) + for k, v := range creds { + authConfigs[k] = types.AuthConfig(v) + } + + return authConfigs +} diff --git a/pkg/container/docker_build.go b/pkg/container/docker_build.go index 2c972f4f..f05a513f 100644 --- a/pkg/container/docker_build.go +++ b/pkg/container/docker_build.go @@ -41,9 +41,10 @@ func NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor { tags := []string{input.ImageTag} options := types.ImageBuildOptions{ - Tags: tags, - Remove: true, - Platform: input.Platform, + Tags: tags, + Remove: true, + Platform: input.Platform, + AuthConfigs: LoadDockerAuthConfigs(ctx), } var buildContext io.ReadCloser if input.Container != nil {