Ruby on rails 为RubyonRails6创建弹性beanstalk环境时遇到问题(rvm、rbenv、.Ruby版本问题)
我一直在想如何在macOS上使用cli将一个简单的rails应用程序部署到elastic beanstalk,但每次我进入Ruby on rails 为RubyonRails6创建弹性beanstalk环境时遇到问题(rvm、rbenv、.Ruby版本问题),ruby-on-rails,ruby,amazon-elastic-beanstalk,rvm,rbenv,Ruby On Rails,Ruby,Amazon Elastic Beanstalk,Rvm,Rbenv,我一直在想如何在macOS上使用cli将一个简单的rails应用程序部署到elastic beanstalk,但每次我进入eb create时,都会出现以下错误: 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_bundl
eb create
时,都会出现以下错误:
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平台版本,我选择了第一个选项,那就是Ruby 2.7.1-p83,这是我的Ruby-v
当前返回的结果,所以我不确定它为什么要寻找2.7.0
我使用rvm是为了更新到最新的Ruby,之前我有Ruby 2.6.3,底部的错误是“Ruby-2.6.3”未安装“。在我的mac上使用rbenv更新到最新版本的Ruby很困难,我想是因为它与我的Ruby系统版本有问题?因此,我从brew中删除了rbenv,并开始使用rvm。但我觉得这就是问题所在,因为elastic beanstalk似乎正在使用rbenv来尝试找到正确版本的Ruby?
Stderr:rbenv:version'ruby-2.7.0'未安装
任何帮助或指导都将不胜感激,即使只是了解“.ruby version”是什么或不应使用rvm进行部署。“.ruby version”是保存在项目根目录下的文件,它指示您正在使用的ruby版本,因此它会自动读取版本。(如果你是这么问的)
对于您的问题,您必须确保正确应用ruby版本
eb-ssh
然后ruby-v
结果将是您需要使用的ruby版本。(更倾向于直接在EC2实例上进行检查,如果通过EB进行检查,可能会有所不同)
.gemfile
和.ruby版本
文件声明了正确的版本.ruby版本
文件,请使用步骤1中获得的版本创建一个
我处理的是同一个问题,安装在EC2实例中的ruby版本与我执行eb health--refresh
时返回的版本不同,因此我按照上面的步骤进行了操作,然后重新构建了我的环境,它起了作用,因此您可能还需要重新构建您的环境