docker - 如果需要交互式安装,如何在 docker 中安装模块/东西?
问题描述
我已经面对这个问题很长时间了。每当我在构建期间尝试在 docker 上安装任何需要交互式安装的东西时,构建都会“挂起”在交互屏幕上。例如,对于一个特定的项目,我需要sddm
在 docker 中安装(是的,是的,我知道我很愚蠢)。现在,构建只是挂在我应该选择键盘布局的步骤。我该如何解决这些问题?
PS:并不是所有的安装脚本都是可以修改的shell脚本(比如apt install sddm -y
)。
PS:spawn
并不echo
总是有帮助。
解决方案
因为当我发布我的第一个答案时,我并没有完全理解这个问题。这是另一种可能的解决方案:
- 运行基础容器
- 用 bash 执行到容器中
docker exec -it mycontainer bash
- 以交互方式安装所需软件
- 从正在运行的容器创建图像
docker commit mycontainer mytag
推荐阅读
- javascript - 如何在 Puppeteer 的 `await page.evaluate(indexTotal => {` 中使用我现有的函数 global.parseData(id, name, url)?
- stripe-payments - 如何对前端的 Stripe PaymentIntent 成功 webhook 做出反应
- java - 为什么我不能使用过滤器作为我在流中的最后一步
- android - 如何只通过更改 URL 而不使用 VPN 访问另一个国家的 playstore
- c# - 如何以编程方式组合两个或多个内容控件?
- javascript - 如何监听 2019 年 window.location.search 的变化
- firebase - Web + 应用程序属性的多个数据流
- mysql - windows下使用npm mysql模块,查询源和路径问题
- typescript - 区分打字稿类型中的装饰类方法
- swift - UIPanGestureRecognizer 在 iOS 13 中不起作用