当docker构建Dockerfile时,允许更多内存

时间:2014-11-13 16:01:46

标签: docker

我尝试构建一个Dockerfile,我得到了这个:

Linking CXX executable ../../../../bin/clang
collect2: error: ld terminated with signal 9 [Killed]
make[2]: *** [bin/clang-3.2] Error 1
make[1]: *** [tools/clang/tools/driver/CMakeFiles/clang.dir/all] Error 2
make: *** [all] Error 2

通常这意味着我没有足够的内存。 那么如何使用更大的内存(或交换?)来运行docker build

谢谢:)

3 个答案:

答案 0 :(得分:9)

您是否尝试通过Docker增加可用于docker的内存>偏好...>高级>内存。它默认只有2 GB(在mac上)。

答案 1 :(得分:4)

构建图像时,docker可以访问系统中的所有内存。

我建议你在构建映像时不要编译,联合文件系统很慢,我注意到它很快就会耗尽硬盘空间。

当我需要打包可执行文件时,我要做的是设置一个容器,其中包含编译所需的所有依赖项,然后使用安装在共享卷中的源代码运行它。

编译代码后,我将可执行文件移动到另一个文件夹中,我将另一个Docker文件添加到最小的基本映像(如临时或忙碌框)中。

通过这样做,我节省了编辑时间,最终得到了一个小得多的图像。

答案 2 :(得分:1)

买一个新的RAM棒? :)

更严重的是,您可能正在运行VM?您需要更改虚拟机的设置并增加RAM大小。

在VirtualBox中,它位于“设置”下 - >系统 - >主板 - >基础记忆。

默认情况下,Docker没有内存限制,因此如果内存不足,则需要增加主机的容量。