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

最佳答案

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

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

我无法使rvmsudo东西正常工作(我没有使用过它,也不想花太多时间在上面),所以我决定改用vi。首次运行autoexpect

$ autoexpect vi test

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

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

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

关于docker - 从dockerfile构建交互式docker?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24335041/

10-16 12:44