我想使用Dockerfile來構建圖像。但是,命令在運行時將需要用戶輸入。目前,構建不成功,因爲docker在用戶輸入時退出。我知道我可以在docker run命令中使用-i -t選項,但是我想在Dockerfile上執行此操作。這怎麼可能?交互式碼頭構建從dockerfile?
13
A
回答
6
您可以嘗試使用expect或類似的工具。
最簡單的配置方法是使用autoexpect
工具,該工具可讓您交互式運行命令併爲您創建期望腳本。
我無法得到rvmsudo的東西工作(我沒有使用它,並不想花太多時間),所以我決定使用vi
來代替。首先運行autoexpect
$ autoexpect vi test
這將打開vi
,您可以創建或編輯該文件並保存它。退出vi
後,您會看到您的文件test
以及期望腳本script.exp
。
然後您可以刪除測試文件並執行script.exp
。它將使用相同的步驟重新創建相同的文件。
autoexpect工具非常棒,但如果您需要對發生的事情有更多的控制權,您可能必須從頭開始創建腳本。例如。如果您不希望腳本使用準確的預期輸入。
+2
得愛情downvoters,誰不評論他回答什麼問題。祝賀你! – ivant
相關問題
- 1. 如何從Dockerfile創建交互式圖像?
- 2. wget身份驗證在碼頭構建失敗,但在碼頭構建Dockerfile成功Dockerfile
- 3. Dockerfile中的交互命令
- 4. 在C中構建交互式圖表#
- 5. 如何構建交互式Ajax Web Widget?
- 6. 建設從官方Dockerfile詹金斯碼頭圖像
- 7. 交互式登錄從C#代碼
- 8. 從交互式shell調用d代碼
- 9. 從R輸出創建交互式Pple
- 10. 無法從Dockerfile構建容器
- 11. 從更多內存的Dockerfile構建Docker
- 12. Dockerfile入口點不在交互模式下執行
- 13. 創建交互式地圖
- 14. Dockerfile:在Dockerfile建設過程中創建和構建
- 15. Dockerfile問題與構建
- 16. 使用dockerfile構建圖像
- 17. Dockerfile:構建並運行
- 18. Dockerfile - 創建dockerfile
- 19. 使碼頭或Dockerfile感Git分支
- 20. Dockerfile與碼頭工人,撰寫VOLUME
- 21. jenkins構建碼頭圖像
- 22. C#交互式窗口可以與我的代碼交互嗎?
- 23. Docker自動構建錯誤:構建失敗:在./Dockerfile找不到Dockerfile
- 24. Django架構與交互式模型
- 25. 交互式架構圖工具
- 26. 創建dockerfile構建新圖像
- 27. 交互式二進制解碼器到結構
- 28. 不能使用此Dockerfile建碼頭工人形象
- 29. 碼頭互通信
- 30. 在交互模式下啓動TFS構建服務時出錯
這取決於什麼userinput,如果它是用戶輸入的apt-get更新爲例,那麼你可以添加-y總是說是。否則,運行一些採用userinput的方法,將其保存在環境變量中,然後將其從環境變量中提取出來。 –
我正在運行'rvmsudo passenger-install-nginx-module'。我不確定你的建議是否適用於此。 – Keeto
在這種情況下,我將使用已安裝的模塊(手動輸入所需數據)構建基礎映像,然後使用該新映像創建Dockerfiles。我很好奇,看看是否有一種通用的方法來解決它,如果你正在運行的腳本不支持無人蔘與安裝... –