ルートレスDockerでsudoコマンドを含むbashスクリプトを実行する

ルートレスDockerでsudoコマンドを含むbashスクリプトを実行する

私はルートレス 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 を作成したりすることはいつでも可能です。

関連情報