MCPcopy
hub / github.com/docker/compose / ImageDigestResolver

Function ImageDigestResolver

pkg/compose/pull.go:259–274  ·  pkg/compose/pull.go::ImageDigestResolver

ImageDigestResolver creates a func able to resolve image digest from a docker ref,

(ctx context.Context, file *configfile.ConfigFile, apiClient client.APIClient)

Source from the content-addressed store, hash-verified

257
258// ImageDigestResolver creates a func able to resolve image digest from a docker ref,
259func ImageDigestResolver(ctx context.Context, file *configfile.ConfigFile, apiClient client.APIClient) func(named reference.Named) (digest.Digest, error) {
260 return func(named reference.Named) (digest.Digest, error) {
261 auth, err := encodedAuth(named, file)
262 if err != nil {
263 return "", err
264 }
265 inspect, err := apiClient.DistributionInspect(ctx, named.String(), client.DistributionInspectOptions{
266 EncodedRegistryAuth: auth,
267 })
268 if err != nil {
269 return "",
270 fmt.Errorf("failed to resolve digest for %s: %w", named.String(), err)
271 }
272 return inspect.Descriptor.Digest, nil
273 }
274}
275
276type authProvider interface {
277 GetAuthConfig(registryHostname string) (clitypes.AuthConfig, error)

Callers 3

runConfigInterpolateFunction · 0.92
resolveImageDigestsFunction · 0.92

Calls 3

encodedAuthFunction · 0.85
DistributionInspectMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected