首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Rails 6创建弹性豆茎环境(rvm,rbenv,. Ruby版本问题)

为Rails 6创建弹性豆茎环境(rvm,rbenv,. Ruby版本问题)
EN

Stack Overflow用户
提问于 2020-08-06 20:18:09
回答 1查看 1.3K关注 0票数 3

我一直在尝试如何使用我的macOS上的cli将一个简单的rails应用程序部署到弹性豆茎,但是每次我到达eb create时都会遇到以下错误:

代码语言:javascript
复制
2020/08/06 07:22:56.626563 [INFO] Executing instruction: StageApplication
2020/08/06 07:22:56.626674 [INFO] extracting /opt/elasticbeanstalk/deployment/app_source_bundle to /var/app/staging/
2020/08/06 07:22:56.626695 [INFO] Running command /bin/sh -c /usr/bin/unzip -q -o /opt/elasticbeanstalk/deployment/app_source_bundle -d /var/app/staging/
2020/08/06 07:22:56.638657 [INFO] finished extracting /opt/elasticbeanstalk/deployment/app_source_bundle to /var/app/staging/ successfully
2020/08/06 07:22:56.640331 [INFO] Executing instruction: RunAppDeployPreBuildHooks
2020/08/06 07:22:56.640351 [INFO] The dir .platform/hooks/prebuild/ does not exist in the application. Skipping this step...
2020/08/06 07:22:56.640356 [INFO] Executing instruction: stage ruby application
2020/08/06 07:22:56.640360 [INFO] stage ruby application ....
2020/08/06 07:22:56.640386 [INFO] Running command /bin/sh -c bundle config set --local deployment true
2020/08/06 07:22:56.669550 [ERROR] An error occurred during execution of command [app-deploy] - [stage ruby application]. Stop running the command. Error: install dependencies in Gemfile failed with error Command /bin/sh -c bundle config set --local deployment true failed with error exit status 1. Stderr:rbenv: version `ruby-2.7.0' is not installed (set by /var/app/staging/.ruby-version)

然后我运行eb terminate,这样我就不用收费了。这个错误只是说我没有安装2.7.0,尽管我的Gemfile列出了2.7.1,并且我运行bundle install时没有任何问题。

对于eb平台版本,我选择了第一个选项列在这里,这将是Ruby2.7.1-p83,这是我的ruby -v当前返回的内容,所以我不知道它为什么要寻找2.7.0.

我使用rvm是为了更新最新的Ruby,以前我有Ruby2.6.3,底部的错误说是'ruby-2.6.3' is not installed'。很难使用rbenv在我的mac上更新Ruby的最新版本,我认为这是因为它与我的系统版本Ruby有问题吗?因此,我从brew中删除了rbenv,并开始使用rvm。但是我觉得这就是问题所在,因为看起来弹性豆柄是用rbenv来尝试找到正确版本的Ruby?Stderr:rbenv: version `ruby-2.7.0' is not installed

任何帮助或指导都会受到欢迎,甚至只是了解什么是“..ruby version”,或者rvm不应该用于部署。

EN

回答 1

Stack Overflow用户

发布于 2020-08-19 05:57:59

". ruby - version“是一个保存在项目根目录上的文件,它指示您使用的是哪个ruby版本,因此它会自动读取版本。(如果这是你要求的话)

对于您的问题,有几件事您必须确保红宝石版本被正确应用。

  1. 检查EC2实例中安装的ruby版本。

您可以通过ssh eb ssh检查这一点,然后ruby -v,结果将是您需要使用的ruby版本。(更喜欢直接在EC2实例上检查它,如果您通过EB检查它,它可能会有所不同)

  1. 确保您的.gemfile.ruby-version文件声明了正确的版本。

如果您还没有.ruby-version文件,请使用步骤1中获得的版本创建一个文件。

我正在处理同一个问题,安装在EC2实例中的ruby版本与如果我生成eb health --refresh时返回的版本不同,所以我按照上面的步骤重新构建了我的环境,并且它工作了,所以您可能还需要重新构建您的环境。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63291168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档