From ac7ea9eefc86c538af54cc0becc931045046c793 Mon Sep 17 00:00:00 2001 From: Djordje Lukic Date: Thu, 18 Aug 2022 17:48:06 +0200 Subject: [PATCH] Add ExposedPorts and Volumes to the image returned Signed-off-by: Djordje Lukic --- daemon/containerd/image.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/daemon/containerd/image.go b/daemon/containerd/image.go index 8832a5dbebefb..e821f9a5f7c30 100644 --- a/daemon/containerd/image.go +++ b/daemon/containerd/image.go @@ -16,6 +16,7 @@ import ( "github.com/docker/docker/errdefs" "github.com/docker/docker/image" "github.com/docker/docker/layer" + "github.com/docker/go-connections/nat" "github.com/opencontainers/go-digest" ocispec "github.com/opencontainers/image-spec/specs-go/v1" "github.com/pkg/errors" @@ -43,6 +44,9 @@ func (i *ImageService) GetImage(ctx context.Context, refOrID string, options ima } tagged, err := i.client.ImageService().List(ctx, fmt.Sprintf("target.digest==%s", ii.Target().Digest.String())) + if err != nil { + return nil, err + } tags := make([]reference.Named, 0, len(tagged)) for _, i := range tagged { name, err := reference.ParseNamed(i.Name) @@ -98,17 +102,23 @@ func (i *ImageService) getImage(ctx context.Context, refOrID string) (containerd for _, id := range fs { rootfs.Append(layer.DiffID(id)) } + exposedPorts := make(nat.PortSet, len(ociimage.Config.ExposedPorts)) + for k, v := range ociimage.Config.ExposedPorts { + exposedPorts[nat.Port(k)] = v + } return ii, &image.Image{ V1Image: image.V1Image{ ID: string(desc.Digest), OS: ociimage.OS, Architecture: ociimage.Architecture, Config: &containertypes.Config{ - Entrypoint: ociimage.Config.Entrypoint, - Env: ociimage.Config.Env, - Cmd: ociimage.Config.Cmd, - User: ociimage.Config.User, - WorkingDir: ociimage.Config.WorkingDir, + Entrypoint: ociimage.Config.Entrypoint, + Env: ociimage.Config.Env, + Cmd: ociimage.Config.Cmd, + User: ociimage.Config.User, + WorkingDir: ociimage.Config.WorkingDir, + ExposedPorts: exposedPorts, + Volumes: ociimage.Config.Volumes, }, }, RootFS: rootfs,