Docker构build冻结从apt安装软件包

我有一个dockerfile需要从apt安装720mb的软件包。

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 

构build运行几乎所需的一半的包,然后它挂在那里闲置。

有没有一种方法可以肯定地知道这个过程是否已经停止,或者只是空闲的等待networking或者这些线路?

您可以使用例如ps faux | less来检查哪个进程正在运行 ps faux | less 。 向下滚动查找与你的容器相对应的lxc-start进程,看看它下面运行着什么( f标志触发一个森林显示,这应该以一个非常明显的方式显示哪些进程属于容器)。

然后,可以使用strace -fp <pid>附加到该容器中最后一个正在运行的进程,看看它在做什么。

最后但并非最不重要的一点,你可以尝试分两个或三个阶段的命令。 在(不太可能)的情况下,问题将来自一个提示您input的包(这不应该发生,因为您指定了noninteractive前端,但是谁知道),这将有助于将其单独出来。

大多数情况下这是一个networking问题。 你在你的主机上使用代理吗?