Error using udocker with no executre permission on /tmp
Created by: gervasek
Error:
$ udocker run ubuntu bash
Warning: non-existing user will be created
******************************************************************************
* *
* STARTING 52e87113-3fb8-33eb-8332-54db5fecb4d1 *
* *
******************************************************************************
executing: bash
proot error: it seems the current temporary directory (/tmp) is mounted with no execution permission.
proot info: Please set PROOT_TMP_DIR env. variable to an alternate location ('/xxx/xxx/xxx/containers/52e87113-3fb8-33eb-8332-54db5fecb4d1/ROOT/tmp' for example).
proot error: execve("/bin/bash"): No such file or directory
proot info: possible causes:
* the program is a script but its interpreter (eg. /bin/sh) was not found;
* the program is an ELF but its interpreter (eg. ld-linux.so) was not found;
* the program is a foreign binary but qemu was not specified;
* qemu does not work correctly (if specified);
* the loader was not found or doesn't work.
fatal error: see `proot-x86_64-4_8_0 --help`.
proot error: can't chmod '/tmp/proot-1097385-65o5aL': No such file or directory
I tried to define PROOT_TMP_DIR but it doens't work with udocker (it fix the problem for proot binary)
$ export PROOT_TMP_DIR=$HOME/proot_tmp
$ udocker run ubuntu bash
# same error...
$ /xxx/xxx/xxx/tools/bin/proot-x86_64-4_8_0 ls -la
# working
Edit: Workaround: add the environment variable in udocekr command, eg
udocker run -e PROOT_TMP_DIR="$HOME/proot_tmp/" ubuntu bash