推送到Elastic Beanstalk时Rails捆绑错误

问题描述 投票:3回答:2

我在Heroku上部署了一个应用程序,我目前正在尝试在AWS上创建相同的应用程序。我已经复制了我的文件夹,在Github上创建了一个完整的独立仓库并安装了ebcli,设置看起来很好。

当我尝试运行eb deploy时,出现此错误:[Instance:i-03051e2a022886184]命令在实例上失败。返回码:1输出:(TRUNCATED)...:来自/opt/rubies/ruby-2.5.3/bin/bundle:23:in`'的find_spec_for_exe': can't find gem bundler (>= 0.a) with executable bundle (Gem::GemNotFoundException) from /opt/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems.rb:308:inactivate_bin_path'。

我在网上看过,它说它来自你的gemlock文件捆绑版本和实际的捆绑版本之间不兼容。

我试图将我的Bundler版本更改为此版本,但我放弃并回到2.0.1,因为我必须安装太多的依赖项。我再次移除了gemlock,但是在尝试部署时我仍然遇到了同样的错误。

使用我的heroku版本,它始终有效。

知道如何解决这个问题吗?

非常感谢

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

几个月前我们从Heroku迁移到AWS,它可能需要一些自定义脚本才能让事情发挥作用。

这将有助于更多地了解您的EB环境,但我假设您在Amazon Linux 2.9.0上使用Ruby 2.5和Puma(?)

不确定捆绑版本带有什么,但我不认为它是2.x.所以你必须添加一个.ebextensions文件,也可以安装你喜欢的捆绑版本。

# .ebextensions/01_install_bundler.config

container_commands:
  install_bundler:
    command: “gem install bundler —-version 2.0.0”

有关AWS Linux customizations的更多信息

在一天结束时,我们对AWS环境更加满意(成本更低,性能更好),但需要更多工作才能完成设置


0
投票

实际上存在问题是因为eb env中的bundler版本比项目源中使用的版本旧。

所以解决方案是使用小于或等于eb env安装版本的bundler版本。

首先卸载当前的捆绑包:

gem卸载包

然后安装所需的一个:

gem install bundler -v 1.16.6

See more details

© www.soinside.com 2019 - 2024. All rights reserved.