@@ -2,6 +2,7 @@ var fs = require('fs');
22var path = require ( 'path' ) ;
33var subProcess = require ( './sub-process' ) ;
44var fetchSnykDockerAnalyzer = require ( './fetch-snyk-docker-analyzer' ) ;
5+ var debug = require ( 'debug' ) ( 'snyk' ) ;
56
67module . exports = {
78 inspect : inspect ,
@@ -40,6 +41,26 @@ function getMetaData() {
4041 } ) ;
4142}
4243
44+ function handleCommonErrors ( error , targetImage ) {
45+ if ( error . indexOf ( 'command not found' ) !== - 1 ) {
46+ throw new Error ( 'Snyk docker CLI was not found' )
47+ }
48+ if ( error . indexOf ( 'Cannot connect to the Docker daemon' ) !== - 1 ) {
49+ throw new Error ( 'Cannot connect to the Docker daemon. Is the docker'
50+ + ' daemon running?' )
51+ }
52+ if ( ( error . indexOf ( 'Error loading image from docker engine' ) !== - 1 ) ||
53+ ( error . indexOf ( 'Error performing image analysis' ) !== - 1 ) ) {
54+ throw new Error ( 'Docker image was not found: ' + targetImage )
55+ }
56+ if ( error . indexOf ( 'Error getting docker client:' ) !== - 1 ) {
57+ throw new Error ( 'Failed getting docker client' )
58+ }
59+ if ( error . indexOf ( 'Error processing image:' ) !== - 1 ) {
60+ throw new Error ( 'Failed processing image:' + targetImage )
61+ }
62+ }
63+
4364function getDependencies ( analyzerBinaryPath , targetImage ) {
4465 return subProcess . execute (
4566 analyzerBinaryPath ,
@@ -51,9 +72,8 @@ function getDependencies(analyzerBinaryPath, targetImage) {
5172 } )
5273 . catch ( function ( error ) {
5374 if ( typeof error === 'string' ) {
54- if ( error . indexOf ( 'command not found' ) !== - 1 ) {
55- throw new Error ( 'Snyk docker CLI wasn\'t found' )
56- }
75+ debug ( `Error while running analyser: '${ error } '` ) ;
76+ handleCommonErrors ( error , targetImage ) ;
5777 errorMsg = error ;
5878 errorMatch = / m s g = " ( .* ) " / g. exec ( errorMsg )
5979 if ( errorMatch ) {
0 commit comments