【发布时间】:2021-01-07 07:55:25
【问题描述】:
我正在尝试在 AWS Elastic Beanstalk 上运行 Rails 6 应用程序,但我从 puma 日志中得到以下信息(每隔几秒重复一次)
[21776] + 上下文中的 Gemfile:/var/app/current/Gemfile
[21776] 工人提前终止
版本号:
- 导轨
6.0.3.3 - 彪马
4.3.5 - ElasticBeanstalk
Ruby 2.7 running on 64bit Amazon Linux 2/3.1.1 - 红宝石
2.7.1p83
服务器在实例外部没有响应,log/production.log 上没有任何内容。
在开发机器上以production 模式运行没有错误,并且数据库是可访问的(没有迁移失败)。
在 AWS 实例上运行命令 bundle exec puma -p 3000 -e production 我得到
Puma starting in single mode...
Version 4.3.5 (ruby 2.7.1-p83), codename: Mysterious Traveller
Min threads: 5, max threads: 5
Environment: production
Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop
所以没有明显的错误可能导致工人停止。
如何找出导致工人失败的原因?
编辑 1:
我在实例上运行 Rails 控制台,发现缺少环境变量 - 例如生产数据库用户/通行证/主机。一旦我对它们进行硬编码,我就可以连接到数据库。 我怀疑缺少其他环境变量会导致应用崩溃。
【问题讨论】:
-
我不认为 EB 使用端口 3000 -- 我会改为使用 $PORT 环境变量。您可能还需要检查 nginx 实例在哪里寻找您的后端
标签: ruby-on-rails amazon-web-services amazon-elastic-beanstalk puma