in ecr/resolver.go [115:140]
func NewResolver(options ...ResolverOption) (remotes.Resolver, error) {
resolverOptions := &ResolverOptions{}
for _, option := range options {
err := option(resolverOptions)
if err != nil {
return nil, err
}
}
if resolverOptions.Session == nil {
awsSession, err := session.NewSession()
if err != nil {
return nil, err
}
resolverOptions.Session = awsSession
}
if resolverOptions.Tracker == nil {
resolverOptions.Tracker = docker.NewInMemoryTracker()
}
return &ecrResolver{
session: resolverOptions.Session,
clients: map[string]ecrAPI{},
tracker: resolverOptions.Tracker,
layerDownloadParallelism: resolverOptions.LayerDownloadParallelism,
httpClient: http.DefaultClient,
}, nil
}