Lo resolví volviendo a montar /tmp para dar permiso de ejecución al volumen (era accesible con solo lectura). Entonces esto resolvió:
sudo mount /tmp -o remount,exec
Configuración de un TMPDIR
específico del usuario directorio resuelve el problema. La variable de entorno TMPDIR es el estándar POSIX, pero TMP (y algunos otros) también se pueden aceptar comúnmente.
Otras respuestas abordan cómo configurar el directorio temporal global predeterminado. Aquí hay dos ejemplos para si la política de seguridad del sistema no permite /tmp
para ser ejecutable.
Primer ejemplo de solución
mkdir $HOME/tmp
export TMPDIR=$HOME/tmp
docker-compose --version
Para mayor comodidad, después de que se haya creado el directorio, la instrucción "exportar" se puede colocar en la configuración del perfil del shell (ejemplo:~/.bash_profile
o ~/.bashrc
).
Segunda solución de ejemplo
Configure un alias (archivos de ejemplo:~/.bashrc
o ~/.bash_alias
).
alias docker-compose="TMPDIR=${HOME}/tmp docker-compose"
Este es un tema que parece ser un punto de tropiezo común. Algunas excavaciones muestran que puede estar relacionado con PyInstaller y no con docker-compose específicamente.
Tuve el mismo problema y ambas soluciones de ejemplo de Kevin funcionan para mí, esto es lo que hice:
- Hago lo que dijo Kevin y pongo
export TMPDIR=$HOME/tmp
en el~/.bashrc
archivo