运行在Docker容器中的Node.js进程在内存不足时不会退出或抛出

我最近偶然发现了一个有趣的问题:我有一个Express Node.js应用程序,我正在使用Docker镜像将其部署到AWS ECS。 但是,它正确部署,运行状况检查失败,检查日志后,我发现该过程在Express初始化过程中无限期挂起而不会出现任何错误。

起初我以为这是由于某些networkingmiss-configuration导致的,它阻止了HTTP端口启动一个监听器的过程,但经过非常繁琐的检查之后,我注意到,默认的内存限制已经到位, 50 MB的内存,当进程实际上需要多一点。 增加内存限制后,它开始正常工作。

  • 为什么它挂在没有任何错误。 当发生这种情况时,Node进程是否应该退出并报错?

  • 今后如何防止这样的问题呢? 也就是说,当这种情况发生时,我希望我的stream程被有意义的错误终止。

谢谢!