私は単にbashスクリプトを実行する次のDockerコマンドを書いた。build
RUN cd dir && ./build
しかし、スクリプトはsudo
私のコンテナに存在しないものを使用します。スクリプトを編集せずに内部で実行できるようにsudo
何も解析しないエイリアスを作成するにはどうすればよいですか?sudo something
something
build
build
答え1
エイリアスを使用するには、スクリプトを編集し、sudo を使用するスクリプトの先頭の行に次を追加する必要があります。
sudo() {
"$@"
}
export -f sudo
または、なしのファイルを作成してこれを実行できますsudo
。その後、代わりに新しいファイルを実行できます。./build
RUN cd dir && sed -e 's/sudo //g' ./build > ./buildme && chmod +x ./buildme && ./buildme
まず、sed
deleteコマンドsudo
と-e
オプションは元のファイルを編集せずに出力をエコーします。次のコマンドを使用して、出力を「buildme」という新しいファイルにリダイレクトします。> ./buildme
sudo -e 's/sudo //g' ./build > ./buildme
次に、次をchmod
使用して新しいファイルを実行可能にします。
chmod -x ./buildme
最後に代わりに./buildme
使用してください./build
。
./buildme