diff --git a/lib/manager/docker/extract.js b/lib/manager/docker/extract.js index 94f2437c59b49942293425c0e6fb832b76984d1a..5da249d5a2033cbd7ef65f13d92149d87d1a21f2 100644 --- a/lib/manager/docker/extract.js +++ b/lib/manager/docker/extract.js @@ -40,7 +40,9 @@ function extractDependencies(content) { const [currentDepTag, currentDigest] = currentDepTagDigest.split('@'); const [depName, currentTag] = currentDepTag.split(':'); logger.info({ depName, currentTag, currentDigest }, 'Dockerfile FROM'); - if (stageNames.includes(currentFrom)) { + if (currentFrom === 'scratch') { + logger.debug('Skipping scratch'); + } else if (stageNames.includes(currentFrom)) { logger.debug({ currentFrom }, 'Skipping alias FROM'); } else { deps.push({ diff --git a/test/manager/docker/extract.spec.js b/test/manager/docker/extract.spec.js index 2f7c44bd94cc840ad330523140591b07328b3f60..c44e17038fa9ecb3b195e654b51407d9071c7e70 100644 --- a/test/manager/docker/extract.spec.js +++ b/test/manager/docker/extract.spec.js @@ -91,6 +91,10 @@ describe('lib/manager/docker/extract', () => { expect(res).toMatchSnapshot(); expect(res).toHaveLength(2); }); + it('skips scratchs', () => { + const res = extractDependencies('FROM scratch\nADD foo\n', config); + expect(res).toHaveLength(0); + }); it('skips named multistage FROM tags', () => { const res = extractDependencies( 'FROM node:6.12.3 as frontend\n\n# comment\nENV foo=bar\nFROM frontend\n',