After many trial and error, this is what worked for me.
Remove puma and rack with Gemfile . Run bundle install . This is what my Gemfile looks like.
# Gemfile source 'https://rubygems.org' gem 'ahoy_matey' gem 'aws-sdk' gem 'bcrypt' gem 'cancancan' gem 'coffee-rails' gem 'font-awesome-rails' gem 'foundation-rails' gem 'gibbon' gem 'jbuilder' gem 'jquery-infinite-pages' gem 'jquery-rails' gem 'kaminari' gem 'mandrill_mailer' gem 'modernizr-rails' gem 'nokogiri' gem 'omniauth-facebook' gem 'omniauth-twitter' gem 'owlcarousel-rails' gem 'paper_trail' gem 'pg' gem 'rails' gem 'rails_admin' gem 'sanitize' gem 'sass-rails' gem 'sentry-raven' gem 'stripe' gem 'twitter-typeahead-rails' gem 'uglifier' gem 'whenever' group :test, :development do gem 'dotenv-rails' end group :development do gem 'spring' end group :doc do gem 'sdoc' end
In the .ebextensions/ folder in your repo, create a script to install the 1.6.0 rack as a local gem.
# .ebextensions/00-install-local-gems.config: commands:
Commit Gemfile , Gemfile.lock and .ebextensions/00-install-local-gems.config in your repo. Press the code on the elastic beanstalk.
You should now close all existing instances. The elastic Beanstalk will recreate them with this updated configuration.
I can confirm the above work with 64-bit Amazon Linux 2014.09 v1.2.0 and v1.0.9, both work with Ruby 2.1 (Puma).
source share