Ich arbeite in einer rootless Docker-Umgebung und möchte ein Shell-Skript ausführen, das einige Befehle mit sudo enthält, aber der Befehl sudo wird in meinem Terminal nicht erkannt (wahrscheinlich, weil es sich um einen rootless Docker handelt). Ich erhalte die folgende Fehlermeldung:
sudo: command not found
Wie kann ich mein Shell-Skript ausführen, ohne es zu ändern? (Ich möchte die Sudo-Befehle nicht manuell löschen, in einem Rootless-Docker muss ich das Sudo einfach ignorieren und den Rest der Zeile ausführen).
Ich habe versucht, wie folgt einen Alias für sudo zu erstellen .bashrc
:
alias sudo=''
,
aber es ist keine richtige Lösung, weil wir für einige Zeilen haben:
sudo -u username ...
.
Antwort1
Das mag verrückt klingen, aber ich habe das Problem einfach durch die Installation von sudo behoben!
apt install sudo
Danach ähnelt der Rootless-Docker einem normalen.
Antwort2
Das Ausführen von Sudo-Anweisungen auf Docker ist keine gute Idee. Sie können jedoch jederzeit versuchen, das Skript außerhalb von Docker auszuführen docker exec -ti --user root container /path/to/script
oder mit Ihrem Skript eine Docker-Datei zu erstellen.