For better security I would like to run Directus as a specific user, since I host multiple Directus instances on the some host.
When I try to run the container as a specific user I’m getting this error:
Error: EACCES: permission denied, mkdir '/.pm2/logs'
at Object.mkdirSync (node:fs:1364:26)
at mkdirpNativeSync (/directus/node_modules/.pnpm/mkdirp@1.0.4/node_modules/mkdirp/lib/mkdirp-native.js:29:10)
at Function.mkdirpSync [as sync] (/directus/node_modules/.pnpm/mkdirp@1.0.4/node_modules/mkdirp/index.js:21:7)
at Client.initFileStructure (/directus/node_modules/.pnpm/pm2@5.4.3/node_modules/pm2/lib/Client.js:133:25)
at new module.exports (/directus/node_modules/.pnpm/pm2@5.4.3/node_modules/pm2/lib/Client.js:38:8)
at new API (/directus/node_modules/.pnpm/pm2@5.4.3/node_modules/pm2/lib/API.js:107:19)
at Object.<anonymous> (/directus/node_modules/.pnpm/pm2@5.4.3/node_modules/pm2/index.js:11:18)
at Module._compile (node:internal/modules/cjs/loader:1730:14)
at Object..js (node:internal/modules/cjs/loader:1895:10)
at Module.load (node:internal/modules/cjs/loader:1465:32)
My docker-compose.yml:
services:
directus:
container_name: "${COMPOSE_PROJECT_NAME}_directus"
restart: unless-stopped
image: directus/directus:11.8.0
user: ${USER_AND_GROUP}
The error makes sense, because the custom user probably doesn’t exist in the Directus container.
Is there a way to run the proces as a specific user?