diff --git a/lib/manager/composer/artifacts.spec.ts b/lib/manager/composer/artifacts.spec.ts
index 07f21e9dfa58d6611bf7d40bf4834cf732dbb07b..68ecdd611bfb391e9e8e49c3b47fc8cb69c84a0c 100644
--- a/lib/manager/composer/artifacts.spec.ts
+++ b/lib/manager/composer/artifacts.spec.ts
@@ -51,6 +51,9 @@ describe('.updateArtifacts()', () => {
     docker.resetPrefetchedImages();
     hostRules.clear();
     setAdminConfig(adminConfig);
+    fs.ensureCacheDir.mockResolvedValue(
+      join(adminConfig.cacheDir, './others/composer')
+    );
   });
   afterEach(() => {
     setAdminConfig();
diff --git a/lib/manager/composer/artifacts.ts b/lib/manager/composer/artifacts.ts
index f67f3e2b6398ef05193d683ac936cd5aa33a15ae..1467e30e4c00e21e327d1f48ecca45c5c1f1aaa0 100644
--- a/lib/manager/composer/artifacts.ts
+++ b/lib/manager/composer/artifacts.ts
@@ -1,6 +1,5 @@
 import is from '@sindresorhus/is';
 import { quote } from 'shlex';
-import upath from 'upath';
 import { getAdminConfig } from '../../config/admin';
 import {
   SYSTEM_INSUFFICIENT_DISK_SPACE,
@@ -15,7 +14,7 @@ import { logger } from '../../logger';
 import { ExecOptions, exec } from '../../util/exec';
 import {
   deleteLocalFile,
-  ensureDir,
+  ensureCacheDir,
   ensureLocalDir,
   getSiblingFileName,
   localPathExists,
@@ -77,11 +76,10 @@ export async function updateArtifacts({
 }: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {
   logger.debug(`composer.updateArtifacts(${packageFileName})`);
 
-  const { allowScripts, cacheDir: adminCacheDir } = getAdminConfig();
-  const cacheDir =
-    process.env.COMPOSER_CACHE_DIR ||
-    upath.join(adminCacheDir, './others/composer');
-  await ensureDir(cacheDir);
+  const cacheDir = await ensureCacheDir(
+    './others/composer',
+    'COMPOSER_CACHE_DIR'
+  );
   logger.debug(`Using composer cache ${cacheDir}`);
 
   const lockFileName = packageFileName.replace(/\.json$/, '.lock');
@@ -125,7 +123,7 @@ export async function updateArtifacts({
       args += ' --ignore-platform-reqs';
     }
     args += ' --no-ansi --no-interaction';
-    if (!allowScripts || config.ignoreScripts) {
+    if (!getAdminConfig().allowScripts || config.ignoreScripts) {
       args += ' --no-scripts --no-autoloader';
     }
     logger.debug({ cmd, args }, 'composer command');