Ich habe es gelöst, indem ich /tmp neu gemountet habe, um dem Volume die Ausführungsberechtigung zu erteilen (es war nur mit Lesezugriff zugänglich). Also das gelöst:
sudo mount /tmp -o remount,exec
Konfigurieren eines benutzerspezifischen TMPDIR Verzeichnis löst das Problem. Die Umgebungsvariable TMPDIR ist POSIX-Standard, aber TMP (und einige andere) können auch allgemein akzeptiert werden.
Andere Antworten befassen sich mit der Konfiguration des globalen temporären Standardverzeichnisses. Hier sind zwei Beispiele, wenn die Sicherheitsrichtlinie des Systems /tmp nicht zulässt ausführbar sein.
Erste Beispiellösung
mkdir $HOME/tmp
export TMPDIR=$HOME/tmp
docker-compose --version
Nachdem das Verzeichnis erstellt wurde, kann der Einfachheit halber die "Export"-Anweisung in die Profilkonfiguration der Shell eingefügt werden (Beispiel:~/.bash_profile oder ~/.bashrc ).
Zweite Beispiellösung
Konfigurieren Sie einen Alias (Beispieldateien:~/.bashrc oder ~/.bash_alias ).
alias docker-compose="TMPDIR=${HOME}/tmp docker-compose"
Dies ist ein Problem, das ein häufiger Stolperstein zu sein scheint. Einige Grabungen zeigen, dass es möglicherweise mit PyInstaller zusammenhängt und nicht speziell mit Docker-Compose.
Ich hatte das gleiche Problem und beide Beispiellösungen von Kevin funktionieren für mich, hier ist das, was ich getan habe:
- Ich tue, was Kevin gesagt hat, und gebe
export TMPDIR=$HOME/tmpein auf der~/.bashrcDatei