diff --git a/lib/manager/bundler/artifacts.ts b/lib/manager/bundler/artifacts.ts
index c31689327c8e26061d13b8dd76bf3304d646f7b9..e04eaab2de294cb4bedadaf12e957f3e9a1929e3 100644
--- a/lib/manager/bundler/artifacts.ts
+++ b/lib/manager/bundler/artifacts.ts
@@ -1,3 +1,4 @@
+import upath from 'upath';
 import {
   getSiblingFileName,
   readLocalFile,
@@ -124,8 +125,9 @@ export async function updateArtifacts(
       'ruby --version',
       `gem install bundler${bundlerVersion} --no-document`,
     ];
-
+    const cwd = upath.join(config.localDir, upath.dirname(packageFileName));
     const execOptions: ExecOptions = {
+      cwd,
       docker: {
         image: 'renovate/ruby',
         tag: await getDockerTag(updateArtifact),