在Elastic Beanstalk上升级Ruby

Sco*_*ott 5 ruby ruby-on-rails amazon-elastic-beanstalk

如何在ELB上设置和更新ruby版本?

我一直在使用ruby 2.2.2我们的qa并且使用env's大约8个月了.我刚刚设置我们的生产env星期一,它不会部署,因为它说ruby设置为2.2.3,我的gemfile说2.2.2.我更新并重新部署,一切似乎都很好.

我回到了qa/staging env,无法让它更新为ruby 2.2.3.保持说ruby版本是2.2.2,Gemfile是2.2.3

我升级了(通过elb ui):

64bit Amazon Linux 2015.03 v1.3.1 running Ruby 2.2 (Passenger Standalone)

64bit Amazon Linux 2015.09 v2.0.6 running Ruby 2.2 (Passenger Standalone)

现在它说Your Ruby version is 2.2.3, but your Gemfile specified 2.2.2.必须有一种更简单的方法来做到这一点.

Roh*_*nga 11

由于您希望同时更新平台和版本标签,因此始终可以使用UpdateEnvironment API指定解决方案堆栈名称和版本标签参数.

http://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_UpdateEnvironment.html

您可以使用aws cli或sdk来执行此操作.

@Scott描述的循序渐进:

  • 更新Gemfile以匹配新平台上的ruby版本
  • 压缩代码库(包括.elasticbeanstalk和.ebextensions),
  • 通过应用程序版本上传到elb(AWS控制台 - > EB - >所有应用程序 - >应用程序版本)
  • aws elasticbeanstalk update-environment --environment-name "corresponding_env_name" --solution-stack-name "64bit Amazon Linux 2015.09 v2.0.6 running Ruby 2.2 (Passenger Standalone)" --version-label "zip_name_you_uploaded"
  • 一切都正确部署
  • 喝点啤酒.

  • 好的,所以这就是我所做的(随意将其添加到您的答案中以供参考).更新了Gemfile以匹配新平台上的ruby版本,压缩了代码库(包括.elasticbeanstalk和.ebextensions),通过应用程序版本上传到elb,运行`aws elasticbeanstalk update-environment --environment-name"associated_env_name"--solution-stack-名称"64bit亚马逊Linux 2015.09 v2.0.6运行Ruby 2.2(乘客独立)" - 版本标签"zip_name_you_uploaded"`一切正确部署,现在我要喝点啤酒.谢谢罗希特! (4认同)