github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/fanal/image/daemon.go (about) 1 package image 2 3 import ( 4 "context" 5 6 "github.com/google/go-containerregistry/pkg/name" 7 8 "github.com/devseccon/trivy/pkg/fanal/image/daemon" 9 "github.com/devseccon/trivy/pkg/fanal/types" 10 ) 11 12 func tryDockerDaemon(_ context.Context, imageName string, ref name.Reference, opt types.ImageOptions) (types.Image, func(), error) { 13 img, cleanup, err := daemon.DockerImage(ref, opt.DockerOptions.Host) 14 if err != nil { 15 return nil, nil, err 16 } 17 return daemonImage{ 18 Image: img, 19 name: imageName, 20 }, cleanup, nil 21 22 } 23 24 func tryPodmanDaemon(_ context.Context, imageName string, _ name.Reference, _ types.ImageOptions) (types.Image, func(), error) { 25 img, cleanup, err := daemon.PodmanImage(imageName) 26 if err != nil { 27 return nil, nil, err 28 } 29 return daemonImage{ 30 Image: img, 31 name: imageName, 32 }, cleanup, nil 33 } 34 35 func tryContainerdDaemon(ctx context.Context, imageName string, _ name.Reference, opts types.ImageOptions) (types.Image, func(), error) { 36 img, cleanup, err := daemon.ContainerdImage(ctx, imageName, opts) 37 if err != nil { 38 return nil, cleanup, err 39 } 40 41 return daemonImage{ 42 Image: img, 43 name: imageName, 44 }, cleanup, nil 45 } 46 47 type daemonImage struct { 48 daemon.Image 49 name string 50 } 51 52 func (d daemonImage) Name() string { 53 return d.name 54 } 55 56 func (d daemonImage) ID() (string, error) { 57 return ID(d) 58 }