From d499cb0cd563d23c834734c17849adf4f460b1e2 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Fri, 25 Jan 2019 07:02:13 +0100
Subject: [PATCH] fix(docker): skip sources containing variables

---
 lib/manager/dockerfile/extract.js                           | 6 ++++++
 test/_fixtures/docker-compose/docker-compose.1.yml          | 3 +++
 .../docker-compose/__snapshots__/extract.spec.js.snap       | 6 ++++++
 test/manager/docker-compose/extract.spec.js                 | 2 +-
 4 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/lib/manager/dockerfile/extract.js b/lib/manager/dockerfile/extract.js
index 526d3da748..fc61e2fec7 100644
--- a/lib/manager/dockerfile/extract.js
+++ b/lib/manager/dockerfile/extract.js
@@ -7,6 +7,11 @@ module.exports = {
 
 function splitImageParts(currentFrom) {
   let dockerRegistry;
+  if (currentFrom.includes('${')) {
+    return {
+      skipReason: 'contains-variable',
+    };
+  }
   const split = currentFrom.split('/');
   if (split.length > 1 && split[0].includes('.')) {
     [dockerRegistry] = split;
@@ -41,6 +46,7 @@ function getDep(currentFrom) {
   const purl = getPurl(dep.dockerRegistry, dep.depName);
   dep.purl = purl;
   if (
+    dep.depName &&
     (dep.depName === 'node' || dep.depName.endsWith('/node')) &&
     dep.depName !== 'calico/node'
   ) {
diff --git a/test/_fixtures/docker-compose/docker-compose.1.yml b/test/_fixtures/docker-compose/docker-compose.1.yml
index 36ceccedd8..d3e7d8eaa1 100644
--- a/test/_fixtures/docker-compose/docker-compose.1.yml
+++ b/test/_fixtures/docker-compose/docker-compose.1.yml
@@ -87,6 +87,9 @@ services:
       placement:
         constraints: [node.role == manager]
 
+  edplugins:
+    image: ${IMAGE:-synkodevelopers/edplugins}:${TAG:-latest}
+
 networks:
   frontend:
   backend:
diff --git a/test/manager/docker-compose/__snapshots__/extract.spec.js.snap b/test/manager/docker-compose/__snapshots__/extract.spec.js.snap
index 5403859b63..5b5ebf67d1 100644
--- a/test/manager/docker-compose/__snapshots__/extract.spec.js.snap
+++ b/test/manager/docker-compose/__snapshots__/extract.spec.js.snap
@@ -80,5 +80,11 @@ Array [
     "lineNumber": 79,
     "purl": "pkg:docker/dockersamples/visualizer",
   },
+  Object {
+    "currentFrom": "\${IMAGE:-synkodevelopers/edplugins}:\${TAG:-latest}",
+    "lineNumber": 90,
+    "purl": "pkg:docker/undefined",
+    "skipReason": "contains-variable",
+  },
 ]
 `;
diff --git a/test/manager/docker-compose/extract.spec.js b/test/manager/docker-compose/extract.spec.js
index 06d3aeff28..6d280b84ea 100644
--- a/test/manager/docker-compose/extract.spec.js
+++ b/test/manager/docker-compose/extract.spec.js
@@ -20,7 +20,7 @@ describe('lib/manager/docker-compose/extract', () => {
     it('extracts multiple image lines', () => {
       const res = extractPackageFile(yamlFile, config);
       expect(res.deps).toMatchSnapshot();
-      expect(res.deps).toHaveLength(7);
+      expect(res.deps).toHaveLength(8);
     });
   });
 });
-- 
GitLab