Ruby on rails Elastic Beanstalk如何启动Ruby on Rails应用程序?如何调试它?
我使用的是Ruby Puma 2.5实例,对此我还很陌生。我已经创建了一个新的rails应用程序,所以这里没有什么特别的内容,只是正确的欢迎页面路径。当我执行Ruby on rails Elastic Beanstalk如何启动Ruby on Rails应用程序?如何调试它?,ruby-on-rails,amazon-web-services,amazon-elastic-beanstalk,Ruby On Rails,Amazon Web Services,Amazon Elastic Beanstalk,我使用的是Ruby Puma 2.5实例,对此我还很陌生。我已经创建了一个新的rails应用程序,所以这里没有什么特别的内容,只是正确的欢迎页面路径。当我执行eb部署时,rails应用程序被正确部署到/var/app/current,但是没有运行rails进程!如果我将用户更改为root(仅作为测试),将目录更改为该目录并运行rails服务器-p3000,则该页面可用并按预期工作。那个么,我如何调试EB以找出应用程序未启动的原因,或者如何自动启动它?我很好奇EB是如何做到这一点的,例如,从正确的
eb部署时
,rails应用程序被正确部署到/var/app/current
,但是没有运行rails进程!如果我将用户更改为root
(仅作为测试),将目录更改为该目录并运行rails服务器-p3000
,则该页面可用并按预期工作。那个么,我如何调试EB以找出应用程序未启动的原因,或者如何自动启动它?我很好奇EB是如何做到这一点的,例如,从正确的目录运行rails server
的脚本在哪里,以及使用选项(例如-p3000
)的正确操作方式是什么。非常感谢有人能指出正确的位置并更好地理解这一点。您无需登录Elastic Beanstalk的后端实例(EC2实例)即可手动启动Ruby on Rails服务器。使用Elastic Beanstalk console或AWS CLI或EB CLI部署应用程序后,将执行实例中的一些脚本以进行部署过程。脚本用于启动Rails服务器
除了eb日志
,您还可以转到Elastic Beanstalk控制台下载部署日志。日志从后端实例检索,是目录/var/log
的捆绑,这意味着捆绑日志的内容与系统中的日志相同。有关更多详细信息,请参阅本文档:
eb日志
可能会告诉您应用程序失败的确切位置。我认为EB将尝试执行development./production.rb文件。因此,只要相关配置文件中有3000
,应用程序就应该按预期加载到3000
。此命令帮助我查看与Rails相关的问题(当我执行eb部署时):tail-f-n0/var/app/containerfiles/logs/*.log/var/puma/puma.log/var/log/eb*.log/var/app/current/log/*.log
这个命令还帮助我查看Rails是否正在运行curl--unix socket/var/run/puma/my_app.sockhttp://localhost
。因此EB会自动尝试使用puma
gem启动Rails,它应该在Gemfile
中,然后不是通过TCP,而是通过Unix套接字。