2016-10-22 89 views
0

我使用的轨道5.00 尝试部署到AWS错误部署Rails应用程序AWS弹性魔豆

时,我不断收到此错误[实例:I-04fd37ed6913c4a8a]命令失败的实例。返回码:5输出:(截断)... ng uifier 3.0.2安装unf 0.1.4安装turbolinks 5.0.1安装activesupport 5.0.0.1安装nokogiri(1.6.8)时发生错误,并且Bundler无法继续。在捆绑之前确保gem install nokogiri -v '1.6.8'成功。挂钩/opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh失败。有关更多详细信息,请使用控制台或EB CLI检查/var/log/eb-activity.log。

+0

nokogiri有时是这样的痛苦。你真的需要尝试像它表明的那样安装它。为您的EB env打开SSH。然后手动运行gem install。很可能会出现错误信息。采取该错误消息和谷歌。你可能需要做一些事情,像http://stackoverflow.com/questions/25963315/nokogiri-installation-failes-on-elastic-beanstalk –

回答

0

您有两个选项来解决此问题:

1)添加到patch.ebextensions/packages.config这样的:

packages: 
    yum: 
    patch: [] 

这将使yum包管理器试图bundle install之前安装它。

2)添加一个命令config来ebextensions/nokogiri_command.config这样的:

commands: 
    test: 
    command: "bundle config build.nokogiri --use-system-libraries" 

无论这两个选项为我工作过。推送到AWS之前不要忘记提交。

0

我遇到了同样的错误“请确保gem install nokogiri -v'1.6.8'在绑定之前成功。”

这是由于我没有选择正确的部署版本的红宝石。 最初创建环境时,我已经将Ruby平台默认为2.3版本(Passenger)。有上面的错误。

我终止了环境并重新创建了它,但选择了我在开发环境中使用的ruby 2.2(Puma)。 AWS环境创建时没有任何错误。

虽然上面的纠正措施解决了这一问题,它没有解释为什么创建Ruby 2.3(乘客)的环境尤其是失败,因为我做了排序“罐头”构建的 - 使用“示例应用程序环境的创造是通过AWS控制台“在配置中。我做了而不是尝试通过eb命令行创建它,或使用我的任何elasticbeanstalk脚本或部署我自己的应用程序。