diff --git a/lib/manager/index.js b/lib/manager/index.js
index 71a1a880bf45d5f662ea56a2d7b12087ae229868..fd0a5f18d993d656b53910c418fe8e5b93a6cae8 100644
--- a/lib/manager/index.js
+++ b/lib/manager/index.js
@@ -57,6 +57,11 @@ async function detectPackageFiles(config) {
       logger.debug(manager + ' is disabled');
       continue; // eslint-disable-line no-continue
     }
+    // Check if the parent is manually disabled
+    if (parentManager && config[parentManager].enabled === false) {
+      logger.debug(manager + ' parentManager is disabled');
+      continue; // eslint-disable-line no-continue
+    }
     let files = [];
     if (managers[manager].detectPackageFiles) {
       logger.debug('manager has own detect function');
diff --git a/test/manager/index.spec.js b/test/manager/index.spec.js
index 9ca1451dbf2951130cb0996640e30f7c8daaa82b..d4fff3a8e10ca6c70dc0231518f59087d5aec2f9 100644
--- a/test/manager/index.spec.js
+++ b/test/manager/index.spec.js
@@ -16,7 +16,7 @@ describe('manager', () => {
     let config;
     beforeEach(() => {
       config = {
-        ...defaultConfig,
+        ...JSON.parse(JSON.stringify(defaultConfig)),
         warnings: [],
       };
     });
@@ -29,6 +29,15 @@ describe('manager', () => {
       const res = await manager.detectPackageFiles(config);
       expect(res).toHaveLength(0);
     });
+    it('skips if parentManager is disabled', async () => {
+      platform.getFileList.mockReturnValueOnce([
+        'package.json',
+        '.circleci/config.yml',
+      ]);
+      config.docker.enabled = false;
+      const res = await manager.detectPackageFiles(config);
+      expect(res).toHaveLength(1);
+    });
     it('adds package files to object', async () => {
       platform.getFileList.mockReturnValueOnce([
         'package.json',