Rails 弹性 Beanstalk 无法部署 -

Posted

技术标签:

【中文标题】Rails 弹性 Beanstalk 无法部署 -【英文标题】:Rails elastic Beanstalk cannot deploy - 【发布时间】:2017-04-04 09:08:28 【问题描述】:

错误提示为 cannot allocate memory,但大量谷歌搜索表明原生 gem 在 beanstalk 上存在问题。

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

      /opt/rubies/ruby-2.1.10/bin/ruby extconf.rb
  Cannot allocate memory - /opt/rubies/ruby-2.1.10/bin/ruby extconf.rb 2>&1

  Gem files will remain installed in /opt/rubies/ruby-2.1.10/lib/ruby/gems/2.1.0/gems/json-1.8.3 for inspection.
  Results logged to /opt/rubies/ruby-2.1.10/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/json-1.8.3/gem_make.out

有没有办法验证 beanstalk 可以安装这个 gem 没有问题?

【问题讨论】:

【参考方案1】:

让构建系统打包所有依赖项占用的资源超出默认 EC2 实例的处理能力。

在 ElasticBeanstalk 部署期间增加 EC2 实例/交换文件的大小以解决此问题。

查看我之前的回复here

【讨论】:

【参考方案2】:

您是否尝试在本地打包 Beanstalk 中的宝石? https://aws.amazon.com/blogs/devops/locally-packaging-gem-dependencies-for-ruby-applications-in-elastic-beanstalk/

【讨论】:

官方文档中没有提到本地打包。宁愿让构建系统打包所有依赖项。

以上是关于Rails 弹性 Beanstalk 无法部署 -的主要内容,如果未能解决你的问题,请参考以下文章

升级弹性 beantalk 堆栈时,Rails 应用程序无法部署

rails部署成功,但Elastic Beanstalk返回522

AWS Elastic Beanstalk——rails 部署问题

为 Ruby on Rails 6 创建弹性 beanstalk 环境时遇到问题(rvm、rbenv、.ruby-version 问题)

Rails Elastic Beanstalk 连接超时 - puma 服务器

Rails Elastic Beanstalk 连接超时 - puma 服务器