Ruby Gems无法在Elastic Beanstalk上安装

时间:2016-07-06 17:47:23

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

我正在尝试将rails应用程序部署到AWS弹性beanstalk。每次我尝试部署时,我都会收到此错误消息。我找到一个答案,说增加实例大小来处理内存异常,但它对我没用。我的项目最初部署到不同的AWS账户没有问题,但现在我正在尝试切换帐户,但它无法正常工作。有谁知道解决这个问题?

 Installing json 1.8.3 with native extensions

  Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

      /opt/rubies/ruby-2.2.5/bin/ruby -r ./siteconf20160706-28984-2z7sxy.rb extconf.rb
  Cannot allocate memory - /opt/rubies/ruby-2.2.5/bin/ruby -r ./siteconf20160706-28984-2z7sxy.rb extco
nf.rb 2>&1

  Gem files will remain installed in /opt/rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/gems/json-1.8.3 for in
spection.
  Results logged to /opt/rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/js
on-1.8.3/gem_make.out
  Using minitest 5.9.0
  Using thread_safe 0.3.5
  Using builder 3.2.2
  Using erubis 2.7.0
  Using mini_portile2 2.1.0
  Using pkg-config 1.1.7
  Using rack 1.6.4
  Using mime-types-data 3.2016.0521
  Using arel 6.0.3
  Using execjs 2.7.0
  Installing bcrypt 3.1.10 with native extensions

  Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

      /opt/rubies/ruby-2.2.5/bin/ruby -r ./siteconf20160706-28984-omunxa.rb extconf.rb
  Cannot allocate memory - /opt/rubies/ruby-2.2.5/bin/ruby -r ./siteconf20160706-28984-omunxa.rb extconf.rb 2>&1

  Gem files will remain installed in /opt/rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/gems/bcrypt-3.1.10 for inspection.
  Results logged to /opt/rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/bcrypt-3.1.10/gem_make.out
  Using sass 3.4.22
  Using coffee-script-source 1.10.0
  Using thor 0.19.1
  Using concurrent-ruby 1.0.2
  Using multi_json 1.12.1
  Installing puma 3.4.0 with native extensions

  Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

      /opt/rubies/ruby-2.2.5/bin/ruby -r ./siteconf20160706-28984-tifyar.rb extconf.rb
  Cannot allocate memory - /opt/rubies/ruby-2.2.5/bin/ruby -r ./siteconf20160706-28984-tifyar.rb extconf.rb 2>&1

  Gem files will remain installed in /opt/rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/gems/puma-3.4.0 for inspection.
  Results logged to /opt/rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/puma-3.4.0/gem_make.out
  Using bundler 1.12.1
  Using tilt 2.0.5
  Installing sqlite3 1.3.11 with native extensions

  Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

      /opt/rubies/ruby-2.2.5/bin/ruby -r ./siteconf20160706-28984-2xtic2.rb extconf.rb
  Cannot allocate memory - /opt/rubies/ruby-2.2.5/bin/ruby -r ./siteconf20160706-28984-2xtic2.rb extconf.rb 2>&1

  Gem files will remain installed in /opt/rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/gems/sqlite3-1.3.11 for inspection.
  Results logged to /opt/rubies/ruby-2.2.5/lib/ruby/gems/2.2.0/extensions/x86_64-linux/2.2.0-static/sqlite3-1.3.11/gem_make.out
  An error occurred while installing json (1.8.3), and Bundler cannot continue.
  Make sure that `gem install json -v '1.8.3'` succeeds before bundling. (Executor::NonZeroExitStatus)

更新

我能够将此项目成功部署到它所在的最初aws帐户,但仍无法将其部署在我想要的帐户上

2 个答案:

答案 0 :(得分:1)

发生错误是因为服务器没有RAM内存。你可以去你的服务器,找到什么是泄漏内存并将其删除,添加一点交换或尝试手动安装gem或依赖,因为deploy proccess消耗更多的内存。

答案 1 :(得分:-1)

你可以通过两种方式解决这个问题。

1)创建ebextension文件并在下面输入选项

option_settings:
  - option_name: BUNDLE_DISABLE_SHARED_GEMS
    value: "1"
  - option_name: BUNDLE_PATH
    value: "vendor/bundle"

2)使用ssh,goto / var / app / current连接到您的服务器并输入bundle install命令并尝试部署您的应用程序。