2016-05-18 100 views
0

我正在創建Dockerfile腳本,它有一個執行程序的命令行,並要求用戶從鍵盤輸入作爲選定選項以進一步操作。將按鍵發送到Dockerfile,Ubuntu

Xdotoolman yesexpect在這種情況下無法提供幫助。

更新源代碼:

首先,下載並解壓RevoMath庫,導航到RevoMath文件夾,然後執行安裝腳本。

 

... 
RUN wget -q https://mran.microsoft.com/install/mro/3.2.4/RevoMath-3.2.4.tar.gz 
RUN tar -xzf RevoMath-3.2.4.tar.gz 
RUN cd RevoMath/ 
RUN ./RevoMath.sh 
... 
 

安裝腳本有一些選擇的選項如下:


echo "1. Install MKL" 
echo "2. Uninstall MKL" 
echo "3. Exit utility" 

我們需要從鍵盤輸入安裝。我們如何通過Docker命令做到這一點?

任何幫助,將不勝感激!

+0

是否可以共享您要執行的程序(以便我們可以嘗試重現/查找一個辦法)? –

+0

@ChristopheSchmitz:嗨,我已經更新了我的帖子。謝謝 –

+0

在輸入1之前構建你的圖像,運行它,輸入1,'docker commit -t myimage',創建一個以'FROM myimage'開始的新Dockerfile並繼續 – user2915097

回答

0

如果我理解正確的話,你想在你的Dockerfile./RevoMath.sh之前添加echo 1 |

... 
RUN cd RevoMath/ && echo 1 | ./RevoMath.sh 
... 

BTW:在你的榜樣,你預計此線將無法正常工作:

RUN cd RevoMath/ 
RUN ./RevoMath.sh 

因爲每個RUN是獨立執行。 如果您想要從特定文件夾執行RevoMath.sh腳本,請使用&&(請參閱我的示例)