mirror of
https://gitea.com/Lydanne/buildx.git
synced 2025-05-18 00:47:48 +08:00
imagetools: process com.docker.reference.* annotations
To give us the option later down the road of producing recommended OCI names in BuildKit (using com instead of vnd, woops), we need to update Buildx to be able to process both. Ideally, if a Buildx/BuildKit release hadn't been made we could just switch over, but since we have, we'd need to support both (at least for a while, eventually we could consider deprecating+removing the vnd variant). Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
parent
78058ce5f3
commit
642f28f439
@ -21,8 +21,11 @@ import (
|
||||
"golang.org/x/sync/errgroup"
|
||||
)
|
||||
|
||||
const (
|
||||
annotationReference = "vnd.docker.reference.digest"
|
||||
var (
|
||||
annotationReferences = []string{
|
||||
"com.docker.reference.digest",
|
||||
"vnd.docker.reference.digest", // TODO: deprecate/remove after migration to new annotation
|
||||
}
|
||||
)
|
||||
|
||||
type contentCache interface {
|
||||
@ -167,8 +170,13 @@ func (l *loader) fetch(ctx context.Context, fetcher remotes.Fetcher, desc ocispe
|
||||
}
|
||||
r.mu.Unlock()
|
||||
|
||||
ref, ok := desc.Annotations[annotationReference]
|
||||
if ok {
|
||||
found := false
|
||||
for _, annotationReference := range annotationReferences {
|
||||
ref, ok := desc.Annotations[annotationReference]
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
|
||||
refdgst, err := digest.Parse(ref)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -176,7 +184,10 @@ func (l *loader) fetch(ctx context.Context, fetcher remotes.Fetcher, desc ocispe
|
||||
r.mu.Lock()
|
||||
r.refs[refdgst] = append(r.refs[refdgst], desc.Digest)
|
||||
r.mu.Unlock()
|
||||
} else {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
if !found {
|
||||
p := desc.Platform
|
||||
if p == nil {
|
||||
p, err = l.readPlatformFromConfig(ctx, fetcher, mfst.Config)
|
||||
|
Loading…
x
Reference in New Issue
Block a user