Skip to content

Improve messaging when trying to scan an unsupported manifest

Brian Williams requested to merge bwill/improve-manifest-v1-error into master

Why is this change being made?

When failing to scan an image in manifest v1 format, container scanning produced this error, which is difficult to debug:

2022-11-04T20:16:49.532Z	FATAL	image scan error:
    github.com/aquasecurity/trivy/pkg/commands/artifact.Run
        /home/runner/work/trivy/trivy/pkg/commands/artifact/run.go:370
  - scan error:
    github.com/aquasecurity/trivy/pkg/commands/artifact.(*runner).scanArtifact
        /home/runner/work/trivy/trivy/pkg/commands/artifact/run.go:230
  - unable to initialize a scanner:
    github.com/aquasecurity/trivy/pkg/commands/artifact.scan
        /home/runner/work/trivy/trivy/pkg/commands/artifact/run.go:538
  - unable to initialize a docker scanner:
    github.com/aquasecurity/trivy/pkg/commands/artifact.imageStandaloneScanner
        /home/runner/work/trivy/trivy/pkg/commands/artifact/scanner.go:22
  - 4 errors occurred:
	* unable to inspect the image (registry.hub.docker.com/library/httpd:2.4.12): Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
	* unable to initialize Podman client: no podman socket found: stat podman/podman.sock: no such file or directory
	* containerd socket not found: /run/containerd/containerd.sock
	* unsupported MediaType: "application/vnd.docker.distribution.manifest.v1+prettyjws", see https://github.com/google/go-containerregistry/issues/377

This MR updates our error mapping in improve_stderr_msg so that it will now output a more helpful message for this error condition.

Test job: https://gitlab.com/gitlab-org/govern/demos/container-scanning-test/-/jobs/3284417744

Edited by Brian Williams

Merge request reports