2014-01-07 46 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