Rails:如何获得AWS Elasticbeanstalk应用程序的puma 3.11?

问题描述 投票:0回答:1

我正在尝试在新的EC2实例上部署Rails应用程序。 EB使用的是puma 2.16.0(已有2年历史),而不是我在Gemfile.lock中定义的版本(3.11.0)。这对我来说是一个问题,因为旧的puma版本依赖于旧版本的rack gem。但我的一个新依赖需要最新版本的rack gem

EB的当前平台:Puma与Ruby 2.3在64位Amazon Linux / 2.4.4上运行

所以EB自动使用较旧的美洲狮和较旧的机架版本导致与我的最新宝石发生冲突:

/opt/rubies/ruby-2.3.4/lib/ruby/gems/2.3.0/gems/bundler-1.15.0/lib/bundler/runtime.rb:317:in check_for_activated_spec!:您已经激活了机架1.6。 8,但你的Gemfile需要rack 2.0.5。将bundle exec添加到您的命令可能会解决此问题。 (宝石:: LoadError)

我看到安装了两个版本(默认来自EB和Gemfile.lock中的一个):

[ec2-user gems] $ ls -l /opt/rubies/ruby-2.3.4/lib/ruby/gems/2.3.0/gems/puma*

PUMA-2.16.0

PUMA-3.11.4

有没有办法使用我们自己的puma版本?

EB的当前平台:Puma与Ruby 2.3在64位Amazon Linux / 2.4.4上运行

ruby-on-rails ruby amazon-web-services elastic-beanstalk
1个回答
2
投票

您使用的是ElasticBeanstalk Puma平台的旧版本 - 最新版本是Puma with Ruby 2.5 running on 64bit Amazon Linux/2.7.2。不幸的是,仍然有Puma 2.16。同时安装两个不同版本的Puma可能会导致问题。

我想你有几个选择:

  1. 从美洲狮转为乘客。
  2. 将依赖于机架的其他gem降级为可与旧版机架配合使用的版本
  3. 请求AWS支持人员升级平台中的Puma。
© www.soinside.com 2019 - 2024. All rights reserved.