我尝试构建一个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
谢谢:)
答案 0 :(得分:9)
您是否尝试通过Docker增加可用于docker的内存>偏好...>高级>内存。它默认只有2 GB(在mac上)。
答案 1 :(得分:4)
构建图像时,docker可以访问系统中的所有内存。
我建议你在构建映像时不要编译,联合文件系统很慢,我注意到它很快就会耗尽硬盘空间。
当我需要打包可执行文件时,我要做的是设置一个容器,其中包含编译所需的所有依赖项,然后使用安装在共享卷中的源代码运行它。
编译代码后,我将可执行文件移动到另一个文件夹中,我将另一个Docker文件添加到最小的基本映像(如临时或忙碌框)中。
通过这样做,我节省了编辑时间,最终得到了一个小得多的图像。
答案 2 :(得分:1)
买一个新的RAM棒? :)
更严重的是,您可能正在运行VM?您需要更改虚拟机的设置并增加RAM大小。
在VirtualBox中,它位于“设置”下 - >系统 - >主板 - >基础记忆。
默认情况下,Docker没有内存限制,因此如果内存不足,则需要增加主机的容量。