【问题标题】:deploy ruby on rails to aws using Elastic Beanstalk error使用 Elastic Beanstalk 将 ruby​​ on rails 部署到 aws 错误
【发布时间】:2018-12-03 10:18:45
【问题描述】:

我正在使用 Elastic Beanstalk 将 ruby​​ on rails 应用程序部署到 aws。我按照本网站上的说明进行操作。

Deploying a Rails Application to Elastic Beanstalk

但是当我开始部署应用程序时,我得到一个错误

这张图片来自 eb-activity.log

gem 'jquery-rails'
gem 'rails', '~> 5.1.4'
gem 'sqlite3'
gem 'puma', '~> 3.7'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'therubyracer', platforms: :ruby
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'redis', '~> 3.0'
gem 'bcrypt', '~> 3.1.7'
gem 'capistrano-rails', group: :development

group :development, :test do
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
gem 'capybara', '~> 2.13'
gem 'selenium-webdriver'
end

group :development do
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

gem 'bootstrap-sass', '~> 3.3.7'
gem 'devise', '~>4.2'
gem 'toastr-rails', '~> 1.0'
gem 'omniauth', '~> 1.6'
gem 'omniauth-facebook', '~> 4.0'
gem 'paperclip', '~>5.1.0'
gem 'aws-sdk','~> 2.8'
gem 'geocoder', '~> 1.4'
gem 'jquery-ui-rails', '~> 5.0'
gem 'ransack', '~> 1.7'
gem 'twilio-ruby', '~> 4.11.1'
gem 'fullcalendar-rails', '~> 3.4.0'
gem 'momentjs-rails', '~> 2.17.1'
gem 'stripe', '~> 3.0.0'
gem 'rails-assets-card', source: 'https://rails-assets.org'
gem 'omniauth-stripe-connect', '~> 2.10.0'
gem 'chartkick', '~> 2.2.4'
gem 'mysql2', '~> 0.3.18'
gem 'yaml_db'
gem 'vider'
gem 'nokogiri', '1.8.1'

【问题讨论】:

  • 确保 bundle install 在本地主机中并且不是 puma 或乘客服务器?
  • @7urkm3n 是的,我的文件夹目录中有捆绑安装,我使用 gem 'puma', '~> 3.7'
  • EB怎么样,是Puma还是Passenger?确保选择 Puma 2.4。你也可以发布gemfile
  • @7urkm3n 我确实在问题中添加了 gemfile 。对于 EB,它不能在控制台中更改为 puma,默认情况下它设置为乘客。我使用 eb cli 创建新环境我选择 Puma 2.4 然后我遇到错误,我有错误编辑问题的图像,我点击了这个链接
  • @7urkm3n 这里是链接。 stackoverflow.com/questions/40938155/…

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


【解决方案1】:

相关错误是:

Installing nokogiri 1.8.1 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

nokogiri 1.8.1 存在安全漏洞,因此升级到最新版本 1.8.3 是一个非常好的主意。这也可能具有修复您看到的构建错误的副作用,因此值得一试。

在您的开发机器上,像这样升级 nokogiri:

bundle update --conservative nokogiri

然后提交 Gemfile.lock,推送并重新部署。

如果这仍然不起作用,您可能只是在服务器上没有足够的内存来编译 nokogiri 扩展。看到这个问题:ElasticBeanstalk - Rails Nokogiri Deployment Issue

或搜索“nokogiri elastic beanstalk”获取更多答案:https://stackoverflow.com/search?q=nokogiri+elastic+beanstalk

【讨论】:

  • 我相信 @Matt Brictson 有正确的答案 - eb-activity.log 中的 Cannot allocate memory 错误表明您的实例太小。尝试使用更大的实例(以及最新版本的 Nokogiri),问题应该会消失。
猜你喜欢
  • 2021-04-09
  • 2020-06-05
  • 2012-04-05
  • 2014-12-16
  • 2016-09-18
  • 2016-04-09
  • 2019-02-22
  • 2021-08-28
  • 2017-10-04
相关资源
最近更新 更多