Skip to content

Commit ca217c0

Browse files
committed
feat: properly determine image id (different on podman and docker)
1 parent 7469b3c commit ca217c0

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

pkg/client/image_info.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,14 @@ func (c *Client) ImageGetManifest(ctx context.Context, ref reference.Named, plat
3131
return v1.Hash{}, nil, err
3232
}
3333

34-
img, err := remote.Image(nameRef, opts...)
34+
desc, err := remote.Get(nameRef, opts...)
3535
if err != nil {
36-
return v1.Hash{}, nil, fmt.Errorf("failed to get image manifest: %w", err)
36+
return v1.Hash{}, nil, fmt.Errorf("failed to get descriptor: %w", err)
37+
}
38+
39+
img, err := desc.Image()
40+
if err != nil {
41+
return v1.Hash{}, nil, fmt.Errorf("failed to get image: %w", err)
3742
}
3843
isPodman, err := c.SystemIsPodman(ctx)
3944
if err != nil {
@@ -43,11 +48,14 @@ func (c *Client) ImageGetManifest(ctx context.Context, ref reference.Named, plat
4348
if err != nil {
4449
return v1.Hash{}, nil, err
4550
}
51+
4652
var id v1.Hash
4753
if isPodman {
48-
id, err = img.Digest()
49-
} else {
54+
// Podman uses config digest as image-id
5055
id, err = img.ConfigName()
56+
} else {
57+
// Docker uses manifest/index digest as image-id
58+
id = desc.Digest
5159
}
5260
if err != nil {
5361
return v1.Hash{}, nil, err

0 commit comments

Comments
 (0)