diff --git a/lib/manager/bazel/detect.js b/lib/manager/bazel/detect.js
deleted file mode 100644
index 5733855e2367af1d5f46edc23016df244a6c4dd3..0000000000000000000000000000000000000000
--- a/lib/manager/bazel/detect.js
+++ /dev/null
@@ -1,19 +0,0 @@
-module.exports = {
-  detectPackageFiles,
-};
-
-async function detectPackageFiles(config, fileList) {
-  logger.debug('bazel.detectPackageFiles()');
-  const packageFiles = [];
-  if (config.bazel.enabled) {
-    for (const file of fileList) {
-      if (file === 'WORKSPACE' || file.endsWith('/WORKSPACE')) {
-        const content = await platform.getFile(file);
-        if (content && content.match(/(^|\n)git_repository\(/)) {
-          packageFiles.push(file);
-        }
-      }
-    }
-  }
-  return packageFiles;
-}
diff --git a/lib/manager/bazel/index.js b/lib/manager/bazel/index.js
index 2781d0b590ca73371ea767a20af621802ca32b2a..dfab0a11b5f1fc4a91a47ab5c7b97b8092fd3b6b 100644
--- a/lib/manager/bazel/index.js
+++ b/lib/manager/bazel/index.js
@@ -1,13 +1,13 @@
-const { detectPackageFiles } = require('./detect');
 const { extractDependencies } = require('./extract');
 const { getPackageUpdates } = require('./package');
 const { resolvePackageFile } = require('./resolve');
 const { setNewValue } = require('./update');
 
-const filePattern = '(^|/)WORKSPACE$';
+const filePattern = new RegExp('(^|/)WORKSPACE$');
+const contentPattern = new RegExp('(^|\\n)git_repository\\(');
 
 module.exports = {
-  detectPackageFiles,
+  contentPattern,
   extractDependencies,
   filePattern,
   getPackageUpdates,
diff --git a/lib/manager/docker/detect.js b/lib/manager/docker/detect.js
deleted file mode 100644
index c2c0bb3ba8c7a9106e6ea68b3bc31b65eaf335c9..0000000000000000000000000000000000000000
--- a/lib/manager/docker/detect.js
+++ /dev/null
@@ -1,23 +0,0 @@
-module.exports = {
-  detectPackageFiles,
-};
-
-async function detectPackageFiles(config, fileList) {
-  logger.debug('docker.detectPackageFiles()');
-  const packageFiles = [];
-  if (config.docker.enabled) {
-    for (const file of fileList) {
-      if (file === 'Dockerfile' || file.endsWith('/Dockerfile')) {
-        const content = await platform.getFile(file);
-        if (content) {
-          if (content.match(/(^|\n)FROM .+\n/)) {
-            packageFiles.push(file);
-          }
-        } else {
-          logger.warn({ file }, 'No Dockerfile content');
-        }
-      }
-    }
-  }
-  return packageFiles;
-}
diff --git a/lib/manager/docker/index.js b/lib/manager/docker/index.js
index 897fa700656a112a0f61c97ba7471fb312ca9126..e29d5de6509bc98f717860091da39da60d6efa82 100644
--- a/lib/manager/docker/index.js
+++ b/lib/manager/docker/index.js
@@ -1,13 +1,13 @@
-const { detectPackageFiles } = require('./detect');
 const { extractDependencies } = require('./extract');
 const { getPackageUpdates } = require('./package');
 const { resolvePackageFile } = require('./resolve');
 const { setNewValue } = require('./update');
 
-const filePattern = '(^|/)Dockerfile$';
+const filePattern = new RegExp('(^|/)Dockerfile$');
+const contentPattern = new RegExp('(^|\\n)FROM .+\\n', 'i');
 
 module.exports = {
-  detectPackageFiles,
+  contentPattern,
   extractDependencies,
   filePattern,
   getPackageUpdates,
diff --git a/lib/manager/index.js b/lib/manager/index.js
index 5e9cf01f959c239309c3d482a7657dc9d51df0cb..b550b8bf9ad0e526e468b6eafcb06b9b82adbabd 100644
--- a/lib/manager/index.js
+++ b/lib/manager/index.js
@@ -30,13 +30,24 @@ async function detectPackageFiles(config) {
   );
   for (const manager of managerList) {
     logger.debug(`Detecting package files (${manager})`);
-    let files;
+    let files = [];
     if (managers[manager].detectPackageFiles) {
       files = await managers[manager].detectPackageFiles(config, fileList);
     } else {
-      files = fileList.filter(file =>
+      const allfiles = fileList.filter(file =>
         file.match(managers[manager].filePattern)
       );
+      for (const file of allfiles) {
+        const { contentPattern } = managers[manager];
+        if (contentPattern) {
+          const content = await platform.getFile(file);
+          if (content && content.match(contentPattern)) {
+            files.push(file);
+          }
+        } else {
+          files.push(file);
+        }
+      }
     }
     if (files.length) {
       logger.info({ manager, files }, `Detected package files`);
diff --git a/lib/manager/meteor/detect.js b/lib/manager/meteor/detect.js
deleted file mode 100644
index 079753a5f0c7f3a025a30ece83135b82dc85638d..0000000000000000000000000000000000000000
--- a/lib/manager/meteor/detect.js
+++ /dev/null
@@ -1,19 +0,0 @@
-module.exports = {
-  detectPackageFiles,
-};
-
-async function detectPackageFiles(config, fileList) {
-  logger.debug('meteor.detectPackageFiles()');
-  const packageFiles = [];
-  if (config.meteor.enabled) {
-    for (const file of fileList) {
-      if (file === 'package.js' || file.endsWith('/package.js')) {
-        const content = await platform.getFile(file);
-        if (content && content.replace(/\s/g, '').includes('Npm.depends({')) {
-          packageFiles.push(file);
-        }
-      }
-    }
-  }
-  return packageFiles;
-}
diff --git a/lib/manager/meteor/index.js b/lib/manager/meteor/index.js
index 4b403b1384715df121b09e5728ce73638e4f6aba..ef29e697ce3f8cf265019f8e4c5c1d6a5a559734 100644
--- a/lib/manager/meteor/index.js
+++ b/lib/manager/meteor/index.js
@@ -1,13 +1,13 @@
-const { detectPackageFiles } = require('./detect');
 const { extractDependencies } = require('./extract');
 const { getPackageUpdates } = require('../npm/package');
 const { resolvePackageFile } = require('./resolve');
 const { setNewValue } = require('./update');
 
-const filePattern = '(^|/)package.js$';
+const filePattern = new RegExp('(^|/)package.js$');
+const contentPattern = new RegExp('(^|\\n)\\s*Npm.depends\\(\\s*{');
 
 module.exports = {
-  detectPackageFiles,
+  contentPattern,
   extractDependencies,
   filePattern,
   getPackageUpdates,
diff --git a/lib/manager/npm/index.js b/lib/manager/npm/index.js
index 2b9cb0953ad716864db75a1271f22135b1d8487e..58f7fe187f1a04946eb6d018d5a8dfa58c5019c1 100644
--- a/lib/manager/npm/index.js
+++ b/lib/manager/npm/index.js
@@ -4,7 +4,7 @@ const { getPackageUpdates } = require('./package');
 const { resolvePackageFile } = require('./resolve');
 const { setNewValue } = require('./update');
 
-const filePattern = '(^|/)package.json$';
+const filePattern = new RegExp('(^|/)package.json$');
 
 module.exports = {
   detectPackageFiles,
diff --git a/lib/manager/nvm/index.js b/lib/manager/nvm/index.js
index 1994de87616168b607ecde476f1f224ef58e017b..3e0c887284602673d868bd145c4a1fe41c35ad24 100644
--- a/lib/manager/nvm/index.js
+++ b/lib/manager/nvm/index.js
@@ -3,7 +3,7 @@ const { getPackageUpdates } = require('./package');
 const { resolvePackageFile } = require('./resolve');
 const { setNewValue } = require('./update');
 
-const filePattern = '^.nvmrc$';
+const filePattern = new RegExp('^.nvmrc$');
 
 module.exports = {
   extractDependencies,
diff --git a/lib/manager/travis/index.js b/lib/manager/travis/index.js
index 7149d5974d2d67514daf85e900312e0c1eb9ca72..d3e12e07bfa434c21cdfcf397aefc10be9fdce6b 100644
--- a/lib/manager/travis/index.js
+++ b/lib/manager/travis/index.js
@@ -3,7 +3,7 @@ const { getPackageUpdates } = require('./package');
 const { resolvePackageFile } = require('./resolve');
 const { setNewValue } = require('./update');
 
-const filePattern = '^.travis.yml$';
+const filePattern = new RegExp('^.travis.yml$');
 
 module.exports = {
   extractDependencies,
diff --git a/test/manager/index.spec.js b/test/manager/index.spec.js
index 8636d2539699267ba39375210dac064622ab7961..03651df944caeec32dac956e15a9400d7bc4f596 100644
--- a/test/manager/index.spec.js
+++ b/test/manager/index.spec.js
@@ -90,6 +90,7 @@ describe('manager', () => {
       platform.getFileList.mockReturnValueOnce([
         'WORKSPACE',
         'other/WORKSPACE',
+        'empty/WORKSPACE',
       ]);
       platform.getFile.mockReturnValueOnce('\n\ngit_repository(\n\n)\n');
       platform.getFile.mockReturnValueOnce(
@@ -98,6 +99,7 @@ describe('manager', () => {
           'utf8'
         )
       );
+      platform.getFile.mockReturnValueOnce('foo');
       const res = await manager.detectPackageFiles(config);
       expect(res).toMatchSnapshot();
       expect(res).toHaveLength(2);