gpt4 book ai didi

ruby-on-rails - Elastic Beanstalk 间歇性激活机架 1.5.2,但我的 Gemfile 需要机架 1.6.0

转载 作者:行者123 更新时间:2023-12-03 00:40:54 26 4
gpt4 key购买 nike

我正在 Elastic Beanstalk 上运行标准 Rails 4.2.0 应用程序。该容器是运行 Ruby 2.1.4、Puma 2.9.1 和 Nginx 1.6.2 的 64 位 Amazon Linux 2014.09 v1.0.9 盒子。

当我将代码推送到此环境时,我在 puma.log 中收到以下错误:“您已经激活了rack 1.5.2,但您的 Gemfile 需要rack 1.6.0。Prepending bundle exec 按照你的命令可能会解决这个问题。”

我不记得几个月前测试时看到过这些错误,而且它似乎是间歇性的。有时我插入一切正常,有时我插入却失败。

https://forums.aws.amazon.com/thread.jspa?messageID=599675表明 /opt/elasticbeanstalk/support/conf/puma.conf 中可能存在错误,但我已经修补了该文件,但错误仍然发生。我还确保我的 Gemfile 中必须有 puma 和rack。

让我的 EC2 实例加载正确版本的机架的最适合生产且可持续的方式是什么?

最佳答案

经过多次尝试和错误,这对我有用。

Gemfile中删除puma和rack。运行捆绑安装。这是我的 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/ 文件夹中,创建一个脚本以将rack 1.6.0 安装为本地 gem。

# .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

GemfileGemfile.lock.ebextensions/00-install-local-gems.config 提交到您的存储库中。将代码推送到 Elastic Beanstalk。

您现在应该终止所有现有实例。 Elastic Beanstalk 将使用此更新的配置重新创建它们。

我可以确认上述内容适用于 64 位 Amazon Linux 2014.09 v1.2.0 和 v1.0.9,两者都运行 Ruby 2.1 (Puma)。

关于ruby-on-rails - Elastic Beanstalk 间歇性激活机架 1.5.2,但我的 Gemfile 需要机架 1.6.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29334394/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com