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',