diff --git a/lib/manager/docker-compose/extract.ts b/lib/manager/docker-compose/extract.ts
index b0034782552a9dfd2c13db9aaa07b9a8e1c8133e..549f2f922094c79f14c7fd6aa66024bd71d9b538 100644
--- a/lib/manager/docker-compose/extract.ts
+++ b/lib/manager/docker-compose/extract.ts
@@ -55,22 +55,30 @@ export function extractPackageFile(
     logger.warn({ fileName, err }, 'Parsing Docker Compose config YAML');
     return null;
   }
-  const lineMapper = new LineMapper(content, /^\s*image:/);
+  try {
+    const lineMapper = new LineMapper(content, /^\s*image:/);
 
-  // Image name/tags for services are only eligible for update if they don't
-  // use variables and if the image is not built locally
-  const deps = Object.values(config.services || {})
-    .filter(service => service.image && !service.build)
-    .map(service => {
-      const dep = getDep(service.image);
-      const lineNumber = lineMapper.pluckLineNumber(service.image);
-      dep.managerData = { lineNumber };
-      return dep;
-    });
+    // Image name/tags for services are only eligible for update if they don't
+    // use variables and if the image is not built locally
+    const deps = Object.values(config.services || {})
+      .filter(service => service.image && !service.build)
+      .map(service => {
+        const dep = getDep(service.image);
+        const lineNumber = lineMapper.pluckLineNumber(service.image);
+        dep.managerData = { lineNumber };
+        return dep;
+      });
 
-  logger.trace({ deps }, 'Docker Compose image');
-  if (!deps.length) {
+    logger.trace({ deps }, 'Docker Compose image');
+    if (!deps.length) {
+      return null;
+    }
+    return { deps };
+  } catch (err) /* istanbul ignore next */ {
+    logger.warn(
+      { fileName, content, err },
+      'Error extracting Docker Compose file'
+    );
     return null;
   }
-  return { deps };
 }