14

Dockerfile を使用してイメージをビルドしたいと考えています。ただし、コマンドは実行時にユーザー入力を必要とします。現在、docker はユーザー入力で終了するため、ビルドは成功しません。docker run コマンドで -i -t オプションを使用できることはわかっていますが、Dockerfile でそれを実行したいと考えています。そんなことがあるものか?

4

1 に答える 1

6

expectまたは同様のツールで試すことができます。

これを構成する最も簡単な方法は、autoexpectツールを使用することです。これにより、コマンドを対話的に実行し、expect スクリプトを作成できます。

私は rvmsudo を動作させることができませんでした (私はそれを使用したことがなく、あまり時間をかけたくありませんでした)。そのため、vi代わりに使用することにしました。ファーストランautoexpect

$ autoexpect vi test

これが開きvi、ファイルを作成または編集して保存できます。を終了するviと、ファイルtestと期待スクリプトが表示されますscript.exp

その後、テスト ファイルを削除して実行できscript.expます。同じ手順を使用して同じファイルを再作成します。

autoexpect ツールは優れていますが、何が起こるかをより詳細に制御する必要がある場合は、スクリプトを最初から作成する必要がある場合があります。たとえば、スクリプトが正確に予想される入力で動作することを望まない場合。

于 2014-06-20T20:49:09.377 に答える