소스 검색

c8d/list: Support dangling filter

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
Paweł Gronowski 2 년 전
부모
커밋
c477cda59f
1개의 변경된 파일12개의 추가작업 그리고 1개의 파일을 삭제
  1. 12 1
      daemon/containerd/image_list.go

+ 12 - 1
daemon/containerd/image_list.go

@@ -18,7 +18,7 @@ import (
 )
 
 var acceptedImageFilterTags = map[string]bool{
-	"dangling":  false, // TODO(thaJeztah): implement "dangling" filter: see https://github.com/moby/moby/issues/43846
+	"dangling":  true,
 	"label":     true,
 	"before":    true,
 	"since":     true,
@@ -256,6 +256,17 @@ func (i *ImageService) setupFilters(ctx context.Context, imageFilters filters.Ar
 			return imageFilters.MatchKVList("label", image.Labels)
 		})
 	}
+
+	if imageFilters.Contains("dangling") {
+		danglingValue, err := imageFilters.GetBoolOrDefault("dangling", false)
+		if err != nil {
+			return nil, err
+		}
+		fltrs = append(fltrs, func(image images.Image) bool {
+			return danglingValue == isDanglingImage(image)
+		})
+	}
+
 	return func(image images.Image) bool {
 		for _, filter := range fltrs {
 			if !filter(image) {