fix: docker pull
with platform checks wrong image tag
This fixes a bug where, if a user pulls an image with a tag != `latest` and
a specific platform, we return an NotFound error for the wrong (`latest`) tag.
see: https://github.com/moby/moby/issues/45558
This bug was introduced in 779a5b3029
in the changes to `daemon/images/image_pull.go`, when we started returning the error from the call to
`GetImage` after the pull. We do this call, if pulling with a specified platform, to check if the platform
of the pulled image matches the requested platform (for cases with single-arch images).
However, when we call `GetImage` we're not passing the image tag, only name, so `GetImage` assumes `latest`
which breaks when the user has requested a different tag, since there might not be such an image in the store.
Signed-off-by: Laura Brehm <laurabrehm@hey.com>
This commit is contained in:
parent
2ea5c1af57
commit
f450ea64e6
1 changed files with 1 additions and 1 deletions
|
@ -63,7 +63,7 @@ func (i *ImageService) PullImage(ctx context.Context, image, tag string, platfor
|
|||
// we allow the image to have a non-matching architecture. The code
|
||||
// below checks for this situation, and returns a warning to the client,
|
||||
// as well as logging it to the daemon logs.
|
||||
img, err := i.GetImage(ctx, image, imagetypes.GetImageOpts{Platform: platform})
|
||||
img, err := i.GetImage(ctx, ref.String(), imagetypes.GetImageOpts{Platform: platform})
|
||||
|
||||
// Note that this is a special case where GetImage returns both an image
|
||||
// and an error: https://github.com/docker/docker/blob/v20.10.7/daemon/images/image.go#L175-L183
|
||||
|
|
Loading…
Reference in a new issue