部署到openshift时出现bundler错误

时间:2016-08-30 00:32:18

标签: ruby-on-rails openshift

我在rails应用程序上有一个Ruby,最初是在ruby 2.1上,但我将它部署到使用ruby 2.0的开放式转换平台的企业版本。我使用rvm安装ruby 2.0.0并创建了一个2.0.0 gemset,它在我的开发机器上运行。但是,当我部署到开放式班次平台时,我收到以下错误:

remote: Building Ruby cartridge
remote: bundle install --deployment --path ./app-root/repo/vendor/bundle
remote: NOTE: You can prevent installing certain Gemfile group using: rhc env set BUNDLE_WITHOUT=groupname
remote: `mri_21` is not a valid platform. The available options are: [:ruby, :ruby_18,
remote: :ruby_19, :ruby_20, :mri, :mri_18, :mri_19, :mri_20, :rbx, :jruby, :mswin,
remote: :mingw, :mingw_18, :mingw_19, :mingw_20]
remote: An error occurred executing 'gear postreceive' (exit code: 4)
remote: Error message: CLIENT_ERROR: Failed to execute: 'control build'

当我谷歌这类问题时,通常的解决方案是更新捆绑包。然而,问题似乎是开放式平台上的捆绑器。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

基于此bundler issue,问题是gem文件中列出的某些gem依赖于ruby 2.1。

在我的情况下,我通过使用命令删除生产组中的宝石(包括bye bug来解决了这个问题。这些宝石用于heroku,因此在开放班次时不需要。

rhc env set BUNDLE_WITHOUT=production

您需要采取的实际步骤取决于您的gem文件中的宝石。