docker - 来自 dockerfile 的交互式 docker 构建?

标签 docker boot2docker

我想使用 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/

相关文章:

java - 如何使用 boot2docker 在 mac OS X 中启用 docker Remote api Rest?

windows - 为什么 Windows 的 boot2docker 中的 bash 如此缓慢?

docker - 是否可以在创建 Docker 容器后为其分配静态 IP 地址?

ruby-on-rails - Docker Ignore 不能很好地与 docker compose 和我的文件结构配合使用

docker - 如何修复 microk8s 上的 "Failed to pull image"

docker - Docker:在镜像创建期间修改文件

sql-server - 如何在Docker上的SQL Server中从数据库备份查看.bak文件

Docker - 镜像操作系统 "windows"无法在此平台上使用

docker - 基于Linux的Docker但在内部运行Windows

ruby - serverspec 命令返回空白字符串