Elastic Beanstalk 未读取环境变量。

0

【以下的问题经过翻译处理】 我在 AWS Elastic Beanstalk 上运行 Rails 6 应用程序,但我从 puma log 得到以下信息(每隔几秒重复一次)

[X] + 上下文中的 Gemfile:/var/app/current/Gemfile

[X] 工人提前解雇

版本号: Rails 6.0.3.3 puma 4.3.5 ElasticBeanstalk Ruby 2.7 running on 64bit Amazon Linux 2/3.1.1 ruby 2.7.1p83

服务器在实例外部没有响应,并且 log/production.log 上没有任何内容。 在生产模式下的开发机器上运行没有错误,并且数据库可以访问(没有迁移失败)。 我在实例上运行 Rails 控制台(生产),发现缺少数据库设置。当我对它们进行硬编码时,数据库可以访问并且可以正常工作。 然后我发现在 ElasticBeanstalk Web 控制台上设置的环境变量都不存在(与文档描述的相反)。

这是平台错误,还是我缺少定义环境变量的方法?

profile picture
专家
已提问 4 个月前39 查看次数
1 回答
0

【以下的回答经过翻译处理】 问题解决了!

在我的例子中,问题是一个已经悄悄更新的 puma 依赖项。

我通过 ssm 进入机器,执行“pumactl start”并收到错误消息:

/opt/rubies/ruby-2.7.1/lib/ruby/site_ruby/2.7.0/bundler/runtime.rb:312:in check_for_activated_spec!': You have already activated nio4r 2.5.2, but your Gemfile requires nio4r 2.5.4. Prepending bundle exec` to your command may solve this. (Gem::LoadError)

然后我仔细检查了拉取请求并注意到 gem nio4r 已更新。

解决方案是在 Gemfile 中将 nio4r 强制为 2.5.2。

希望它也适合你。

profile picture
专家
已回答 4 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则