【发布时间】:2018-12-10 00:37:14
【问题描述】:
我正在使用 Ruby Puma 2.5 实例,对此我很陌生。我已经创建了新的 Rails 应用程序,所以这里没有什么特别的,只是通往欢迎页面的正确路线。当我执行eb deploy 时,rails 应用程序已正确部署到/var/app/current,但没有运行 rails 进程!如果我将用户更改为root(仅作为测试),将目录更改为该用户并运行rails server -p 3000,则该页面可用并按预期工作。那么如何调试 EB 以查找应用程序未启动的原因或如何自动启动它?我很好奇 EB 是如何做到这一点的,例如从正确目录运行 rails server 的脚本在哪里,以及使用选项(例如 -p 3000)进行操作的正确方法是什么。非常感谢有人能指出正确的地方并更好地理解这一点。
【问题讨论】:
-
eb logs可能会告诉您应用程序失败的确切位置。我认为 EB 会尝试执行 development./production.rb 文件。因此,只要3000在相关配置文件中,应用程序就应该按预期在3000上加载。 -
这个命令帮助我查看了与 Rails 相关的问题(当我执行
eb deploy时):tail -f -n 0 /var/app/containerfiles/logs/*.log /var/log/puma/puma.log /var/log/eb*.log /var/app/current/log/*.log并且此命令帮助我查看 Rails 是否正在运行curl --unix-socket /var/run/puma/my_app.sock http://localhost。所以 EB 会自动尝试使用pumagem 启动 Rails,它应该在你的Gemfile中,然后它不是通过 TCP 而是通过 Unix 套接字访问的。
标签: ruby-on-rails amazon-web-services amazon-elastic-beanstalk