in builder/digest_docker.go [76:97]
func getRepoDigest(jsonContent string, reference *image.Reference) string {
prefix := reference.Repository + "@"
// If the reference is in DockerHub library image format (eg, nginx:latest, library/node:16), we have to remove "/library" fix - otherwise
// we'll fail to query the digest, since image names aren't prefixed with "library/"
if reference.Registry == DockerHubRegistry && !strings.HasPrefix(reference.Reference, DockerHubRegistry) {
if strings.HasPrefix(prefix, "library/") {
prefix = prefix[8:]
}
} else if len(reference.Registry) > 0 {
prefix = reference.Registry + "/" + prefix
}
var digestList []string
if err := json.Unmarshal([]byte(jsonContent), &digestList); err != nil {
log.Printf("Error deserializing %s to json, error: %v\n", jsonContent, err)
}
for _, digest := range digestList {
if strings.HasPrefix(digest, prefix) {
return digest[len(prefix):]
}
}
return ""
}