从dockerfile构建交互式docker?

时间:2014-06-20 20:19:54

标签: docker boot2docker

我想使用Dockerfile来构建图像。但是,命令在运行时需要用户输入。目前,构建不成功,因为docker退出用户输入。我知道我可以在docker run命令上使用-i -t选项,但我想在Dockerfile上执行此操作。怎么可能?

1 个答案:

答案 0 :(得分:6)

您可以尝试使用expect或类似的工具。

配置它的最简单方法是使用autoexpect工具,它允许您以交互方式运行命令并为您创建期望脚本。

我无法让rvmsudo工作(我还没有使用它并且不想花太多时间),所以我决定使用vi代替。首先运行autoexpect

$ autoexpect vi test

这将打开vi,您可以创建或编辑该文件并保存。退出vi后,您会看到您的文件test以及期望脚本script.exp

然后,您可以删除测试文件并执行script.exp。它将使用相同的步骤重新创建相同的文件。

autoexpect工具很棒,但如果您需要对发生的事情有更多控制权,则可能必须从头开始创建脚本。例如。如果您不希望脚本使用确切的预期输入。