将 rails 部署到 beanstalk 错误

Posted

技术标签:

【中文标题】将 rails 部署到 beanstalk 错误【英文标题】:Deploy rails to beanstalk error 【发布时间】:2018-09-23 13:43:59 【问题描述】:

将标准 rails api 应用程序部署到 beanstalk 时,失败并显示以下日志:

++ export RUBY_ROOT=/opt/rubies/ruby-2.4.3
++ RUBY_ROOT=/opt/rubies/ruby-2.4.3
++ export RUBYOPT=
++ RUBYOPT=
++ export PATH=/opt/rubies/ruby-2.4.3/bin:/opt/elasticbeanstalk/lib/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
++ PATH=/opt/rubies/ruby-2.4.3/bin:/opt/elasticbeanstalk/lib/ruby/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin
+++ /opt/rubies/ruby-2.4.3/bin/ruby -
++ eval 'export RUBY_ENGINE=ruby;
export RUBY_VERSION=2.4.3;
export GEM_ROOT="/opt/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0";'
+++ export RUBY_ENGINE=ruby
+++ RUBY_ENGINE=ruby
+++ export RUBY_VERSION=2.4.3
+++ RUBY_VERSION=2.4.3
+++ export GEM_ROOT=/opt/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0
+++ GEM_ROOT=/opt/rubies/ruby-2.4.3/lib/ruby/gems/2.4.0
++ ((  0 != 0  ))
+ cd /var/app/ondeck
+ su -s /bin/bash -c 'bundle exec /opt/elasticbeanstalk/support/scripts/check-for-rake-task.rb db:migrate' webapp
`/home/webapp` is not a directory.
Bundler will use `/tmp/bundler/home/webapp' as your home directory temporarily.
+ '[' false = true ']'
+ su -s /bin/bash -c 'leader_only bundle exec rake db:migrate' webapp
`/home/webapp` is not a directory.
Bundler will use `/tmp/bundler/home/webapp' as your home directory temporarily.
rake aborted!
Bundler::GemRequireError: There was an error while trying to load the gem 'rb-readline'.
Gem Load Error is: HOME environment variable (or HOMEDRIVE and HOMEPATH) must be set and point to a directory

我是 Beanstalk 的新手,有人可以指出问题所在吗? 似乎它正在尝试使用“/home/webapp”,但该目录不是以某种方式创建的。

非常感谢!

【问题讨论】:

这个答案适合你的情况吗? ***.com/a/46935141/336392 @ThomasR.Koll 感谢您的参考,与我的问题相同。但是解决方案还不够清楚。我尝试设置 HOME=/var/app/ondeck 。但仍然会引发相同的错误消息。似乎没有使用该变量。对我来说,解决方案 3 不清楚如何执行。 【参考方案1】:

我发现这个问题可以通过从构建中删除 rb-readline gem 来解决。不是最好的解决方法,但现在可以了。

【讨论】:

以上是关于将 rails 部署到 beanstalk 错误的主要内容,如果未能解决你的问题,请参考以下文章

将 Rails 应用程序部署到 Elastic Beanstalk 一直失败

AWS Elastic Beanstalk——rails 部署问题

Rails aws elastic beanstalk部署错误与数据库适配器

将 Rails 大礼包部署到 Beanstalk

Rails 4.2 MySQL 5.6 Elastic Beanstalk YAML 语法错误

AWS Elastic Beanstalk Ruby on Rails 6 应用程序部署错误与 nginx