From b8b435b0fa5a280de0cbf0aa59069aa4e28df2d7 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Tue, 23 Jul 2019 10:20:27 +0200
Subject: [PATCH] feat(npm): support binarySource=docker (#4150)

---
 lib/manager/npm/post-update/npm.js | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/lib/manager/npm/post-update/npm.js b/lib/manager/npm/post-update/npm.js
index c92a99e2e2..6a8765cf0a 100644
--- a/lib/manager/npm/post-update/npm.js
+++ b/lib/manager/npm/post-update/npm.js
@@ -64,6 +64,20 @@ async function generateLockFile(
     if (binarySource === 'global') {
       cmd = 'npm';
     }
+    // istanbul ignore if
+    if (config.binarySource === 'docker') {
+      logger.info('Running npm via docker');
+      cmd = `docker run --rm `;
+      const volumes = [cwd];
+      if (config.cacheDir) {
+        volumes.push(config.cacheDir);
+      }
+      cmd += volumes.map(v => `-v ${v}:${v} `).join('');
+      const envVars = ['NPM_CONFIG_CACHE', 'npm_config_store'];
+      cmd += envVars.map(e => `-e ${e} `).join('');
+      cmd += `-w ${cwd} `;
+      cmd += `renovate/npm npm`;
+    }
     args = `install`;
     if (
       (postUpdateOptions && postUpdateOptions.includes('npmDedupe')) ||
-- 
GitLab