読者です 読者をやめる 読者になる 読者になる

Amazon Elastic Beanstalk で t2.micro で Rails をデプロイすると、gem install に失敗する件

Rails AWS Elastic Beanstalk

先に結論

原因

bundle install 時に メモリが不足が原因で native extension のビルドに失敗している

エラーメッセージ

An error occurred while installing nokogiri (1.6.8.1), and Bundler cannot
continue.
Make sure that `gem install nokogiri -v '1.6.8.1'` succeeds before bundling.

eb-activity.log

  Installing nokogiri 1.6.8.1 with native extensions

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

      current directory: /opt/rubies/ruby-2.3.1/lib/ruby/gems/2.3.0/gems/nokogiri-1.6.8.1/ext/nokogiri
  /opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20161205-3296-zuwti1.rb extconf.rb 
  Cannot allocate memory - /opt/rubies/ruby-2.3.1/bin/ruby -r ./siteconf20161205-3296-zuwti1.rb extconf.rb 2>&1

swap を大きくするとか回避する方法もあるけれど、お金を惜しんで手間を掛けるのは、PaaS の精神に反しているとおもったので、お金で解決