docker RUNコマンドでsudoのエイリアスを指定する方法

docker RUNコマンドでsudoのエイリアスを指定する方法

私は単にbashスクリプトを実行する次のDockerコマンドを書いた。build

RUN cd dir && ./build

しかし、スクリプトはsudo私のコンテナに存在しないものを使用します。スクリプトを編集せずに内部で実行できるようにsudo何も解析しないエイリアスを作成するにはどうすればよいですか?sudo somethingsomethingbuildbuild

ベストアンサー1

エイリアスを使用するには、スクリプトを編集し、sudo を使用するスクリプトの先頭の行に次を追加する必要があります。

sudo() {
    "$@"
}
export -f sudo

または、なしのファイルを作成してこれを実行できますsudo。その後、代わりに新しいファイルを実行できます。./build

RUN cd dir && sed -e 's/sudo //g' ./build > ./buildme && chmod +x ./buildme && ./buildme

まず、seddeleteコマンドsudo-eオプションは元のファイルを編集せずに出力をエコーし​​ます。次のコマンドを使用して、出力を「buildme」という新しいファイルにリダイレクトします。> ./buildme

sudo -e 's/sudo //g' ./build > ./buildme

次に、次をchmod使用して新しいファイルを実行可能にします。

chmod -x ./buildme

最後に代わりに./buildme使用してください./build

./buildme

おすすめ記事