Ruby on rails AWS弹性豆茎钢轨捆扎机故障

Ruby on rails AWS弹性豆茎钢轨捆扎机故障,ruby-on-rails,amazon-web-services,gem,bundler,amazon-elastic-beanstalk,Ruby On Rails,Amazon Web Services,Gem,Bundler,Amazon Elastic Beanstalk,我正在使用eb CLI在AWS上安装rails应用程序。我以前有过一个测试,但现在我正在尝试部署我编写的一些实际代码。当我执行git aws.push时,更新失败。“eb logs”命令显示绑定器失败 我在运行Ruby 2.1(Puma)的64位Amazon Linux 2014.03 v1.0.0上运行这个 我也不会在我的gem文件中调用bcrypt。它一定是魔法宝石的附属品 我曾尝试使用“捆绑包”来实现供应商/缓存技巧,但它一直说AWS上缺少一些gem。正如您所知,我对elastic bea

我正在使用eb CLI在AWS上安装rails应用程序。我以前有过一个测试,但现在我正在尝试部署我编写的一些实际代码。当我执行git aws.push时,更新失败。“eb logs”命令显示绑定器失败

我在运行Ruby 2.1(Puma)的64位Amazon Linux 2014.03 v1.0.0上运行这个

我也不会在我的gem文件中调用bcrypt。它一定是魔法宝石的附属品

我曾尝试使用“捆绑包”来实现供应商/缓存技巧,但它一直说AWS上缺少一些gem。正如您所知,我对elastic beanstalk/aws以及rails都是相当陌生的,所以我可能只是做了一些完全错误的事情


另外,当我删除gemfile.lock中的bcrypt引用(我确信这会破坏某些东西)时,它只是在以后的不同gem(ffi)上抛出相同的错误。我敢肯定,如果我一次只修复一个gem的话,会有很多gem最终抛出错误。

因此,gem install bcrypt-v'3.1.7'可能需要依赖于C库。您可以使用yum和ebextensions安装本机依赖项

您可以使用ebextensions安装gem安装成功所需的yum软件包。在应用程序源代码中创建一个名为
.ebextensions/01 yum.config
的文件,并将以下内容放入其中

packages: 
  yum:
    <required-native-dependency>: []
软件包:
百胜:
: []
此文件为YAML格式,因此缩进非常重要

请在此处阅读有关ebextensions打包部分的更多信息:


该错误实际上是由运行make时实例内存不足引起的:

Cannot allocate memory - /opt/rubies/ruby-2.1.2/bin/ruby extconf.rb  2>&1
很可能您正在运行一个微实例——将它提升到一个更大的实例大小,它应该能够可靠地构建


Rohit的回答是正确的,但缺少系统包通常是gems无法安装到Elastic Beanstalk中的原因。

谢谢!当我遇到一个无法安装的gem时,如何找到本机依赖项的内容?进行一些实验会很有帮助。您可以使用ssh连接到实例,并查看/var/log中的日志。
Cannot allocate memory - /opt/rubies/ruby-2.1.2/bin/ruby extconf.rb  2>&1