Configuring a user specific TMPDIR
directory solves the problem. The TMPDIR environment variable is POSIX standard, but TMP (and a few others) can be commonly accepted as well.
Other answers address how to configure the global, default temporary directory. Here are two examples if the system's security policy does not allow /tmp
to be executable.
First Example Solution
mkdir $HOME/tmp
export TMPDIR=$HOME/tmp
docker-compose --version
For convenience, after the directory has been created, the "export" statement can be placed in the shell's profile configuration (example: ~/.bash_profile
or ~/.bashrc
).
Second Example Solution
Configure an alias (example files: ~/.bashrc
or ~/.bash_alias
).
alias docker-compose="TMPDIR=${HOME}/tmp docker-compose"
This is an issue that seems to be a common stumbling point. Some digging shows that it may be related to PyInstaller and not docker-compose specifically.