grist-omnibus icon indicating copy to clipboard operation
grist-omnibus copied to clipboard

container won't start: Error: spawnSync /bin/sh EACCES

Open marlon0 opened this issue 2 years ago • 6 comments

On running the docker container using the provided example settings:

mkdir -p /tmp/grist-test
docker run \
  -p 80:80 -p 443:443 \
  -e URL=https://cool-beans.example.com \
  -e HTTPS=auto \
  -e TEAM=cool-beans \
  -e [email protected] \
  -e PASSWORD=topsecret \
  -v /tmp/grist-test:/persist \
  --name grist --rm \
  -it gristlabs/grist-omnibus  # or grist-ee-omnibus for enterprise

The following error is thrown, and the process dies:

<ref *1> Error: spawnSync /bin/sh EACCES
    at Object.spawnSync (internal/child_process.js:1107:20)
    at spawnSync (child_process.js:776:24)
    at Object.execSync (child_process.js:858:15)
    at invent (/grist/run.js:228:31)
    at prepareMainSettings (/grist/run.js:165:40)
    at main (/grist/run.js:18:3)
    at Object.<anonymous> (/grist/run.js:45:1)
    at Module._compile (internal/modules/cjs/loader.js:1114:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)
    at Module.load (internal/modules/cjs/loader.js:979:32) {
  errno: -13,
  code: 'EACCES',
  syscall: 'spawnSync /bin/sh',
  path: '/bin/sh',
  spawnargs: [ '-c', 'pwgen -s 20' ],
  error: [Circular *1],
  status: null,
  signal: null,
  output: null,
  pid: 0,
  stdout: null,
  stderr: null
}

It seems this is related to running the command pwgen -s 20 to generate random values for variables.

marlon0 avatar Apr 05 '23 16:04 marlon0

That's odd, thanks for reporting. Not able to replicate yet. What architecture is the container running on?

paulfitz avatar Apr 05 '23 18:04 paulfitz

Thanks for looking at it. This is on a fresh lxc VPS running:

Operating System: Debian GNU/Linux 11 (bullseye) Kernel: Linux 5.15.0-56-generic Architecture: x86-64 Docker version 23.0.3, build 3e7cbfd

marlon0 avatar Apr 06 '23 14:04 marlon0

Interestingly, the bug does not surface on a comparable VPS running Ubuntu 22.04.1 LTS with the same kernel and docker version.

marlon0 avatar Apr 06 '23 16:04 marlon0

If I had to guess, it is some weirdness related to the storage driver in use by docker (default of overlay2 is apparently not available under lxc?) If so, squashing the image might work.

paulfitz avatar Apr 06 '23 16:04 paulfitz

@marlon0 I pushed a squashed version of the gristlabs/grist image, if you get a chance to re-pull it I'd be interested in whether it changes anything.

paulfitz avatar Apr 06 '23 18:04 paulfitz

Update: I had to undo the squashing, it was causing other problems.

paulfitz avatar Apr 19 '23 18:04 paulfitz