如何在Docker Hub中从源代码构buildEmacs? BSS和堆之间的差距

直到最近,我已经能够使用这个配方在Docker容器中从源代码构buildemacs。 不过截至上周,我所有的构build都失败了

Warning: Your system has a gap between BSS and the heap (32188607 bytes). This usually means that exec-shield or something similar is in effect. The dump may fail because of this. See the section about exec-shield in etc/PROBLEMS for more information. 

我读过etc / PROBLEMS ,这对我没有任何意义。 是否有人知道如何解释这个docker集装箱和我可以做什么来在hub.docker.com再次构buildemacs?

我试过了

 cat 0 > /proc/sys/kernel/exec-shield 

但我不认为这是真正的问题,它不存在于容器中。

  • 交叉发布到https://emacs.stackexchange.com/questions/22665
  • 上游错误报告https://github.com/docker/docker/issues/22801

既然你交叉,我回答:P恕我直言交叉是不好的,你应该删除其中的一个问题。


这个问题也在这里回答(因为你已经find了我的github的bug报告):

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=23529

就目前而言,在emacs构build系统更改之前,可能会这样,唯一有效的解决scheme是:

  • 不要使用Dockerfile进行构build,并在具有允许个性化系统调用的seccompconfiguration文件的正在运行的容器中构build。 例如:

    docker run --rm -it --security-opt seccomp=unconfined emacs-builder-image

  • 在构build之前禁用/ proc / sys / kernel / randomize_va_space:

    echo 0 > /proc/sys/kernel/randomize_va_space; docker build .