部署到EB时升级Ruby版本

时间:2019-01-04 16:08:14

标签: ruby-on-rails ruby amazon-web-services amazon-ec2 amazon-elastic-beanstalk

我在Ruby 2.2.5上有一个生产rails应用程序,但是我将我的应用程序更新为ruby 2.5.3,并且将rails从4.2更新为5.2。当我尝试将其部署到ElasticBeanstalk时,每次都会出现以下错误:

Warning: the running version of Bundler is older than the version that created the lockfile. 
We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
Your Ruby version is 2.2.5, but your Gemfile specified 2.5.3. 
Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

要解决此问题,我先将其切入实例并安装rvm,然后使用

更新ruby版本

rvm --default use 2.5.3

此后,我按照错误消息中的建议更新了bundler,但似乎每次关闭连接并重新插入2.2.5时,红宝石版本都会重置为ssh,因为这样做< / p>

ruby -v给出2.2.5

如何更新实例上的ruby版本?

1 个答案:

答案 0 :(得分:2)

Elastic Beanstalk在平台中设置Ruby版本(您可以将其视为基本的AMI)。要升级它,您需要升级到update your platform version

根据您使用的Web服务器,听起来您需要以下之一:

  • 运行Ruby 2.5(Puma)的64位Amazon Linux 2018.03 v2.8.7
  • 运行Ruby 2.5(Passenger Standalone)的64位Amazon Linux 2018.03 v2.8.7