2014-01-07 43 views
2

我有一個dockerfile,需要從apt安裝720mb的軟件包。Docker build凍結了apt的安裝包

run DEBIAN_FRONTEND=noninteractive apt-get install -y python-pip python-dev\ 
    supervisor mercurial subversion buildbot buildbot-slave subversion doxygen\ 
    cmake cloc build-essential valgrind cccc scons g++ cppcheck qt4-dev-tools\ 
    wget lcov graphviz 

構建運行幾乎一半的請求包,然後它只是掛在那裏閒置。

有沒有辦法知道進程是否已經暫停,或者它是否只是空閒等待網絡或沿着這些線路?

回答

4

您可以檢查使用例如哪個進程正在運行。 ps faux | less。向下滾動查找與您的容器相對應的lxc-start進程,並查看它下面正在運行的內容(f標誌觸發了一個森林顯示,該顯示應以非常明顯的方式顯示哪些進程屬於該容器)。

然後,您可以使用strace -fp <pid>附加到該容器中上次運行的進程,並查看它在做什麼。

最後但並非最不重要的是,您可以嘗試在2或3個階段中分解命令。在一個(不太可能)的情況下,問題會來自一個提示你輸入的包(這不應該發生,因爲你指定了前端,但是誰知道),這將有助於將其單獨出來。

+1

謝謝你的提示。我檢查過,因爲我們在這裏的蹩腳的互聯網連接,這個過程是閒置... – tutuca

1

大多數情況下,這是一個網絡問題。你在你的主機上使用代理嗎?

+0

檢查我對接受的答案的評論。 – tutuca