make 默认会以单进程执行 gcc 编译程序,但是编译的代码文件稍微多一些,编译的速度会很慢。如果运行的机器有多个 CPU 多个核,就可以借助多个进程同时编译来减小编译时间。
很简单,在 make 是,加上 -j10 的参数即可,其中 10 为编译进程数量,一般设置为 CPU 核数一样。
仅仅知道这些是不够的,对于一些没有直接运行 make 的场景,如 Dockerfile 在 build 过程中,调用了其它脚本,其中包含 make 命令,但是又不方便修改脚本,这时,可以在 Dockerfile 运行时,添加环境变量 MAKEFLAGS=-j10
,在 make 时,就会自动加上 -j10
的参数了。
从 docker-compose.yml 传入环境变量到 Dockerfile 可以参考: