私はルートレス Docker 環境で作業しており、sudo を使用したコマンドを含むシェル スクリプトを実行したいのですが、コマンド sudo がターミナルで認識されません (おそらくルートレス Docker であるため)。次のエラーが表示されます。
sudo: command not found
シェル スクリプトを変更せずに実行するにはどうすればよいですか? (sudo コマンドを手動で削除したくありません。ルートレス Docker では、sudo を無視して行の残りを実行するだけです)。
次のように sudo のエイリアスを作成しようとしました.bashrc
。
alias sudo=''
、
しかし、これは正しい解決策ではありません。いくつかの行では次のようになります。
sudo -u username ...
。
答え1
おかしいと思われるかもしれませんが、sudo をインストールするだけで問題は解決しました。
apt install sudo
その後は、ルートレス ドッカーは通常のドッカーと同様になります。
答え2
Docker で sudo ステートメントを実行するのはお勧めできません。ただし、スクリプトを Docker の外部で実行したりdocker exec -ti --user root container /path/to/script
、スクリプトを含む Dockerfile を作成したりすることはいつでも可能です。