go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/discovery/docker_engine/platform.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package docker_engine 5 6 import ( 7 "github.com/google/go-containerregistry/pkg/v1/tarball" 8 "go.mondoo.com/cnquery/providers/os/fsutil" 9 "go.mondoo.com/cnquery/providers/os/id/containerid" 10 ) 11 12 func platformID(filename string) (string, error) { 13 var identifier string 14 // try to determine if the tar is a container image 15 img, iErr := tarball.ImageFromPath(filename, nil) 16 if iErr == nil { 17 hash, err := img.Digest() 18 if err != nil { 19 return "", err 20 } 21 identifier = containerid.MondooContainerImageID(hash.String()) 22 } else { 23 hash, err := fsutil.LocalFileSha256(filename) 24 if err != nil { 25 return "", err 26 } 27 identifier = "//platformid.api.mondoo.app/runtime/tar/hash/" + hash 28 } 29 return identifier, nil 30 }