management-center icon indicating copy to clipboard operation
management-center copied to clipboard

Docker container is unable to start as non root

Open trunet opened this issue 1 year ago • 0 comments

This container should support running as a non root user.

Trying to do that, I get the following error:

Starting Management Center for Eclipse Mosquitto
node:internal/fs/utils:350
    throw err;
    ^

Error: EACCES: permission denied, open '/management-center/src/utils/db.json'
    at Object.openSync (node:fs:603:3)
    at writeFileSync (node:fs:2324:35)
    at FileSync.read (/management-center/node_modules/lowdb/adapters/FileSync.js:46:9)
    at db.read (/management-center/node_modules/lowdb/lib/main.js:32:21)
    at module.exports (/management-center/node_modules/lowdb/lib/main.js:51:13)
    at Object.<anonymous> (/management-center/src/utils/utils.js:33:12)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12) {
  errno: -13,
  syscall: 'open',
  code: 'EACCES',
  path: '/management-center/src/utils/db.json'
}

Node.js v18.17.1

I think the best approach should be creating a cedalo user/group inside the container, set the USER parameter in the Dockerfile and give permission to this user to write only where really needed.

trunet avatar Oct 01 '23 01:10 trunet