in lambda/utils.go [106:141]
func (s *ImageOpts) NewSystemContext() (*types.SystemContext, error) {
ctx := &types.SystemContext{
DockerRegistryUserAgent: "ecr-deployment",
DockerAuthConfig: &types.DockerAuthConfig{},
}
if s.creds != "" {
log.Printf("Credentials login mode for %v", s.uri)
token := strings.SplitN(s.creds, ":", 2)
ctx.DockerAuthConfig = &types.DockerAuthConfig{
Username: token[0],
}
if len(token) == 2 {
ctx.DockerAuthConfig.Password = token[1]
}
} else {
if s.requireECRLogin {
log.Printf("ECR auto login mode for %v", s.uri)
auths, err := GetECRLogin(s.region)
if err != nil {
return nil, err
}
if len(auths) == 0 {
return nil, fmt.Errorf("empty ECR login auth token list")
}
auth0 := auths[0]
ctx.DockerAuthConfig = &types.DockerAuthConfig{
Username: auth0.User,
Password: auth0.Pass,
}
}
}
return ctx, nil
}