我想使用Dockerfile来构建图像。但是,命令在运行时需要用户输入。目前,构建不成功,因为docker退出用户输入。我知道我可以在docker run命令上使用-i -t选项,但我想在Dockerfile上执行此操作。怎么可能?
答案 0 :(得分:6)
您可以尝试使用expect或类似的工具。
配置它的最简单方法是使用autoexpect
工具,它允许您以交互方式运行命令并为您创建期望脚本。
我无法让rvmsudo工作(我还没有使用它并且不想花太多时间),所以我决定使用vi
代替。首先运行autoexpect
$ autoexpect vi test
这将打开vi
,您可以创建或编辑该文件并保存。退出vi
后,您会看到您的文件test
以及期望脚本script.exp
。
然后,您可以删除测试文件并执行script.exp
。它将使用相同的步骤重新创建相同的文件。
autoexpect工具很棒,但如果您需要对发生的事情有更多控制权,则可能必须从头开始创建脚本。例如。如果您不希望脚本使用确切的预期输入。