2015-03-29 4 views
5

मैं लोचदार बीनस्टॉक पर मानक रेल 4.2.0 ऐप चला रहा हूं। कंटेनर 64-बिट अमेज़ॅन लिनक्स 2014.0 9 v1.0.9 बॉक्स रूबी 2.1.4, प्यूमा 2.9.1 और Nginx 1.6.2 चल रहा है।लोचदार बीनस्टॉक रैक 1.5.2 को सक्रिय रूप से सक्रिय करता है, लेकिन मेरे जेमफाइल को रैक 1.6.0

जब मैं इस पर्यावरण को कोड दबाता हूं, तो मुझे puma.log में निम्न त्रुटि मिलती है: "आपने पहले से ही रैक 1.5.2 सक्रिय कर दिया है, लेकिन आपके जेमफाइल को रैक 1.6.0 की आवश्यकता है। bundle exec आपके आदेश में इसे हल कर सकता है । "

मुझे कुछ महीने पहले इन त्रुटियों को देखने में याद नहीं आया जब मैं परीक्षण कर रहा था और ऐसा लगता है कि यह अड़चन है। कभी-कभी मैं धक्का देता हूं और सब कुछ काम करता है, दूसरी बार मैं धक्का देता हूं और यह विफल रहता है।

https://forums.aws.amazon.com/thread.jspa?messageID=599675 सुझाव देता है कि /opt/elasticbeanstalk/support/conf/puma.conf में कोई बग हो सकता है, लेकिन मैंने उस फ़ाइल को पैच किया है और त्रुटि अभी भी होती है। मैंने यह भी सुनिश्चित किया है कि मुझे अपने जेमफाइल में प्यूमा और रैक होना है।

मेरे ईसी 2 उदाहरणों को रैक के सही संस्करण को लोड करने के लिए सबसे अधिक उत्पादन तैयार और टिकाऊ तरीका क्या है?

उत्तर

4

बहुत सारे परीक्षण और त्रुटि के बाद, यहां मेरे लिए क्या काम किया गया है।

Gemfile से प्यूमा और रैक निकालें। bundle install चलाएं। यहां बताया गया है कि मेरा Gemfile कैसा दिखता है।

# 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 

अपने रेपो में .ebextensions/ फ़ोल्डर में, एक स्थानीय मणि के रूप में रैक 1.6.0 स्थापित करने के लिए एक स्क्रिप्ट बनाने।

# .ebextensions/00-install-local-gems.config: 
commands: 

    # add rack 1.6.0 to $GEM_ROOT so puma can activate it instead of rack 1.5.2 
    # use actual path not $GEM_ROOT because env vars are not available here 
    # make sure puma and rack are not in app's Gemfile or there will be blood 

    00_install_rack_160: 
    command: gem install -i /opt/rubies/ruby-2.1.4/lib/ruby/gems/2.1.0 rack -v 1.6.0  

Gemfile, Gemfile.lock और .ebextensions/00-install-local-gems.config अपने रेपो में प्रतिबद्ध होते हैं। कोड को लोचदार बीनस्टॉक पर पुश करें।

अब आपको अपने सभी मौजूदा उदाहरणों को समाप्त करना चाहिए। लोचदार Beanstalk उन्हें इस अद्यतन विन्यास के साथ फिर से बना देगा।

मैं 64 बिट अमेज़ॅन लिनक्स 2014.0 9 v1.2.0 और v1.0.9 के साथ उपरोक्त कार्यों की पुष्टि कर सकता हूं, दोनों रूबी 2.1 (प्यूमा) चल रहे हैं।

संबंधित मुद्दे