diff --git a/daemon/containerd/image_exporter.go b/daemon/containerd/image_exporter.go index 9224aa2e68..964e28553e 100644 --- a/daemon/containerd/image_exporter.go +++ b/daemon/containerd/image_exporter.go @@ -286,7 +286,7 @@ func (i *ImageService) LoadImage(ctx context.Context, inTar io.ReadCloser, platf for _, p := range platformList { platformNames = append(platformNames, platforms.FormatAll(p)) } - log.G(ctx).WithFields(log.Fields{"error": err, "platform(s)": platformNames}).Debug("failed to import image to containerd") + log.G(ctx).WithFields(log.Fields{"error": err, "platforms": platformNames}).Debug("failed to import image to containerd") // Note: ErrEmptyWalk will not be returned in most cases as // index.json will contain a descriptor of the actual OCI index or diff --git a/daemon/server/router/image/image_routes.go b/daemon/server/router/image/image_routes.go index dd882e1a31..043b837031 100644 --- a/daemon/server/router/image/image_routes.go +++ b/daemon/server/router/image/image_routes.go @@ -244,13 +244,13 @@ func (ir *imageRouter) getImagesGet(ctx context.Context, w http.ResponseWriter, } var platformList []ocispec.Platform - // platform param was introduce in API version 1.48 + // platform param was introduced in API version 1.48 if versions.GreaterThanOrEqualTo(httputils.VersionFromContext(ctx), "1.48") { var err error formPlatforms := r.Form["platform"] - // multi-platform params were introduced in API version 1.51 - if versions.LessThan(httputils.VersionFromContext(ctx), "1.51") && len(formPlatforms) > 1 { - return errdefs.InvalidParameter(errors.New("multiple platform parameters are not supported in this API version; use API version 1.51 or later.")) + // multi-platform params were introduced in API version 1.52 + if versions.LessThan(httputils.VersionFromContext(ctx), "1.52") && len(formPlatforms) > 1 { + return errdefs.InvalidParameter(errors.New("multiple platform parameters are not supported in this API version; use API version 1.52 or later")) } platformList, err = httputils.DecodePlatforms(formPlatforms) if err != nil { @@ -274,13 +274,13 @@ func (ir *imageRouter) postImagesLoad(ctx context.Context, w http.ResponseWriter } var platformList []ocispec.Platform - // platform param was introduce in API version 1.48 + // platform param was introduced in API version 1.48 if versions.GreaterThanOrEqualTo(httputils.VersionFromContext(ctx), "1.48") { var err error formPlatforms := r.Form["platform"] - // multi-platform params were introduced in API version 1.51 - if versions.LessThan(httputils.VersionFromContext(ctx), "1.51") && len(formPlatforms) > 1 { - return errdefs.InvalidParameter(errors.New("multiple platform parameters are not supported in this API version; use API version 1.51 or later.")) + // multi-platform params were introduced in API version 1.52 + if versions.LessThan(httputils.VersionFromContext(ctx), "1.52") && len(formPlatforms) > 1 { + return errdefs.InvalidParameter(errors.New("multiple platform parameters are not supported in this API version; use API version 1.52 or later")) } platformList, err = httputils.DecodePlatforms(formPlatforms) if err != nil { diff --git a/docs/api/version-history.md b/docs/api/version-history.md index 0a839dec18..ba7acd8d7a 100644 --- a/docs/api/version-history.md +++ b/docs/api/version-history.md @@ -17,6 +17,11 @@ keywords: "API, Docker, rcli, REST, documentation" [Docker Engine API v1.52](https://docs.docker.com/reference/api/engine/version/v1.52/) documentation +* `GET /images/{name}/get` now accepts multiple `platform` query-arguments + to allow selecting which platform(s) of a multi-platform image must be + saved. +* `POST /images/load` now accepts multiple `platform` query-arguments + to allow selecting which platform(s) of a multi-platform image to load. ## v1.51 API changes