首页 > 解决方案 > 为什么在运行 ruby​​ 应用程序的 docker 容器中大约 60 秒后 Phusion Passenger 会超时?

问题描述

我正在使用乘客码头图像之一(phusion/passenger-ruby26)在码头集装箱内的乘客内部运行 ruby​​ sinatra 应用程序。这个应用程序是一个简单的网络应用程序,它调用数据库(它不会不断地与数据库通信,只有在单击某个按钮时才会调用语句)。我可以很好地启动应用程序并在我的网络应用程序中单击一小段时间,但它总是在正常运行时间大约 60 秒时出错,说:

无法为应用程序 /home/app/my_app 生成进程:启动预加载器进程时发生超时。

错误 ID:3b9633ef

错误详细信息保存到:/tmp/passenger-error-aFglsc.html

请注意,即使我没有点击任何内容,也会发生这种情况。在 html 文件中,它声明:

Phusion Passenger 应用程序服务器尝试启动 Web 应用程序,但这花费了太多时间,因此Passenger 停止了它。

它表明服务器可能资源不足,但我给了它无限的资源(4 核 2.2GHz、16GB 内存和 4GB 交换),这是平均负载(使用的内存为 3%)

平均负载

这是“问题位置”,表明它在“加载应用程序”子流程中出错。

问题位置

我尝试过的事情:

尝试了一些我不记得的其他杂项,但也没有证明是有效的。

有谁知道会发生什么?如果需要,我会提供更多信息。

使用的版本:

在 MacOS 10.14.6 上运行

标签: rubydockerpassenger

解决方案


解决。结果是我运行了我的 ruby​​ 应用程序两次。在主 app.rb 和 config.ru rackup 配置文件中有两个 run myapp 命令实例。在 ruby​​ 项目中应该只有一个实例。


推荐阅读