升级弹性 beantalk 堆栈时,Rails 应用程序无法部署

Posted

技术标签:

【中文标题】升级弹性 beantalk 堆栈时,Rails 应用程序无法部署【英文标题】:Rails app fails to deploy when upgrading elastic beanstalk stack 【发布时间】:2020-11-27 10:06:56 【问题描述】:

我正在通过 elb 的 ui 将我的弹性 beanstalk 版本升级到 Puma,并在 64 位 Amazon Linux/2.11.8 上运行 Ruby 2.6。当我这样做时,我会收到此错误。如果我恢复到平台版本 2.11.4,它可以工作

Initialization failed at 2020-08-07T04:41:35Z with exit status 1 and error: Hook /opt/elasticbeanstalk/hooks/preinit/22_gems.sh failed.

++ /opt/elasticbeanstalk/bin/get-config container -k script_dir
+ EB_SCRIPT_DIR=/opt/elasticbeanstalk/support/scripts
++ /opt/elasticbeanstalk/bin/get-config container -k gem_dir
+ EB_GEM_DIR=/opt/elasticbeanstalk/support/gems/puma
+ . /opt/elasticbeanstalk/support/scripts/use-app-ruby.sh
++ . /usr/local/share/chruby/chruby.sh
+++ CHRUBY_VERSION=0.3.9
+++ RUBIES=()
+++ for dir in '"$PREFIX/opt/rubies"' '"$HOME/.rubies"'
+++ [[ -d /opt/rubies ]]
++++ ls -A /opt/rubies
+++ [[ -n ruby-1.9.3-p551
ruby-2.0.0-p648
ruby-2.1.10
ruby-2.2.10
ruby-2.3.8
ruby-2.4.9
ruby-2.5.7
ruby-2.6.5
ruby-current ]]
+++ RUBIES+=("$dir"/*)
+++ for dir in '"$PREFIX/opt/rubies"' '"$HOME/.rubies"'
+++ [[ -d /.rubies ]]
+++ unset dir
+++ cat /etc/elasticbeanstalk/.ruby_version
++ chruby 2.6.6
++ case "$1" in
++ local dir match
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-1.9.3-p551
++ case "$dir##*/" in
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-2.0.0-p648
++ case "$dir##*/" in
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-2.1.10
++ case "$dir##*/" in
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-2.2.10
++ case "$dir##*/" in
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-2.3.8
++ case "$dir##*/" in
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-2.4.9
++ case "$dir##*/" in
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-2.5.7
++ case "$dir##*/" in
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-2.6.5
++ case "$dir##*/" in
++ for dir in '"$RUBIES[@]"'
++ dir=/opt/rubies/ruby-current
++ case "$dir##*/" in
++ [[ -z '' ]]
++ echo 'chruby: unknown Ruby: 2.6.6'
chruby: unknown Ruby: 2.6.6
++ return 1.
Process default has been unhealthy for 34 minutes (Target.FailedHealthChecks).

我该如何调试呢? rails 应用在 ruby​​ 2.6.6 上运行。

【问题讨论】:

【参考方案1】:

您可能需要在可用的红宝石中使用红宝石(如 2.6.5)或弄清楚如何使其他红宝石可用。

【讨论】:

以上是关于升级弹性 beantalk 堆栈时,Rails 应用程序无法部署的主要内容,如果未能解决你的问题,请参考以下文章

在弹性 beantalk 上部署 rails 应用程序时出错(生产模式)

我的 ec2 实例中乘客日志文件的位置(弹性 beantalk + rails)

尝试通过弹性 beantalk 运行救援时忽略 .ebextensions 文件

cron作业中的Rails类方法在弹性beantalk中不起作用

Rails 应用程序未在弹性 beantalk aws 上加载资产

在 AWS 弹性 beantalk 上使用 webpacker gem 部署 rails react 应用程序