AWS Elastic Beanstalk——rails 部署问题

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk——rails 部署问题【英文标题】:AWS Elastic Beanstalk -- Issue with rails deployment 【发布时间】:2019-11-22 03:00:27 【问题描述】:

所以我有 ruby​​ 2.3.4 和 bundler v 1.17.3 我尝试使用 eb cli 将其部署到弹性 beanstalk 然后我得到一个错误:

[实例:i-09d1c36b765b9a656] 实例上的命令失败。返回 代码:18 输出:(截断)...g:Bundler 的运行版本 (1.16.2) 比创建锁定文件的版本 (1.17.3) 旧。 我们建议您通过运行升级到最新版本的 Bundler gem install bundler。你的 Ruby 版本是 2.3.8,但是你的 Gemfile 2.3.4 规定。钩 /opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh 失败。 有关更多详细信息,请使用控制台或 EB 检查 /var/log/eb-activity.log 命令行界面。

所以我运行了 eb ssh: 安装 rvm 和 ruby​​ 2.3.4 并将其设为默认 安装 bundler v 1.17.3 并将其设为默认

但是当我运行 eb deploy 时,我得到了同样的错误。 我做错了什么?

日志:

gem 'mocha', group: :test + '[' -d /var/app/ondeck/vendor/cache ']' + bundle install 不要以 root 身份运行 Bundler。打包机可以问 如果需要 sudo ,则以 root 身份安装你的包 为这台机器上的所有非 root 用户中断这个应用程序。 警告:Bundler (1.16.2) 的运行版本比 创建锁定文件的版本(1.17.3)。我们建议您升级到 通过运行gem install bundler 获得最新版本的 Bundler。您的 Ruby 版本是 2.3.8,但您的 Gemfile 指定了 2.3.4 (执行者::NonZeroExitStatus)

[2019-07-12T16:20:25.830Z] 信息 [9280] - [应用程序更新 app-260b-190712_161857@9/AppDeployStage0/AppDeployPreHook/10_bundle_install.sh] : 活动失败。 [2019-07-12T16:20:25.830Z] 信息 [9280] - [应用程序更新 app-260b-190712_161857@9/AppDeployStage0/AppDeployPreHook]:活动 失败的。 [2019-07-12T16:20:25.830Z] 信息 [9280] - [应用程序更新 app-260b-190712_161857@9/AppDeployStage0]:活动失败。 [2019-07-12T16:20:25.831Z] 信息 [9280] - [应用程序更新 app-260b-190712_161857@9]:已完成活动。结果:申请 更新 - 命令 CMD-AppDeploy 失败

【问题讨论】:

【参考方案1】:

我在启动新的开发盒时得到了这个,因为我总是忘记更新我的初始化脚本。

你可以做的是设置一个钩子来重新安装捆绑器,它基本上是删除和安装它的脚本

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platform-hooks.html

 #/opt/elasticbeanstalk/hooks/appdeploy/01_update_bundler.sh
 #!/bin/sh
 gem uninstall bundler
 gem install bundler -v 1.17.3 # or whatever version you want

【讨论】:

我试过了,但没用。顺便说一句,我也将日志添加到我的问题中

以上是关于AWS Elastic Beanstalk——rails 部署问题的主要内容,如果未能解决你的问题,请参考以下文章

[AWS] Elastic Beanstalk

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android

AWS Elastic Beanstalk 无法担任角色

AWS Elastic Beanstalk