首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推送到Heroku失败是因为不支持Ruby版本,即使在Gemfile被更改之后

推送到Heroku失败是因为不支持Ruby版本,即使在Gemfile被更改之后
EN

Stack Overflow用户
提问于 2019-03-22 09:48:12
回答 1查看 537关注 0票数 1

我试图把分叉式回购推向Heroku,但是Heroku不接受,因为Ruby2.3.1没有被接受。我在Gemfile中将版本更改为2.3.3,并运行了bundle install --without production,但奇怪的是,它仍然被认为是2.3.1。即使在尝试了其他Ruby版本(如2.4.0 )之后,也会发生同样的事情。

参考资料:

代码语言:javascript
复制
$ cat Gemfile.lock | grep -A 2 RUBY
RUBY VERSION
ruby 2.3.3p222
$ bundle platform --ruby
ruby 2.3.3p222

错误:

代码语言:javascript
复制
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote:        Command: 'set -o pipefail; curl -L --fail --retry 5 --retry-delay 1 --connect-timeout 3 --max-time 30 https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/heroku-18/ruby-2.3.1.tgz -s -o - | tar zxf - ' failed on attempt 1 of 3.
remote:        Command: 'set -o pipefail; curl -L --fail --retry 5 --retry-delay 1 --connect-timeout 3 --max-time 30 https://s3-external-1.amazonaws.com/heroku-buildpack-ruby/heroku-18/ruby-2.3.1.tgz -s -o - | tar zxf - ' failed on attempt 2 of 3.
remote:
remote:  !
remote:  !     An error occurred while installing ruby-2.3.1
remote:  !
remote:  !     This version of Ruby is not available on Heroku-18. The minimum supported version
remote:  !     of Ruby on the Heroku-18 stack can found at:
remote:  !
remote:  !     https://devcenter.heroku.com/articles/ruby-support#supported-runtimes
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote:
remote:  !     Push failed

Gemfile:

代码语言:javascript
复制
# -*- mode: ruby; -*-
source 'https://rubygems.org'
ruby '2.3.3'

# basic app components
gem 'pg', '~> 0.21'
gem 'apartment', '>= 2.1.0'     # multi-tenancy: see README.md
gem 'rails', '4.2.9'
gem 'rack-timeout'              # prevent Heroku dynos from hanging up on timeout

gem 'where-or'                  # backport from Rails 5; remove when upgrading

gem 'builder'
gem 'bundler'
gem 'figaro'
gem 'sslrequirement'
gem 'haml'
gem 'gibbon'
gem 'i18n'
gem 'jbuilder', '~> 2.0'
gem 'jquery-rails', '= 4.0.5'
gem 'jquery-ui-rails', '= 5.0.5'
gem 'nokogiri'
gem 'pothoven-attachment_fu'
gem 'protected_attributes'      # remove once we migrate to Strong Parameters
gem 'responders', '~> 2.0'
gem 'attr_encrypted'            # attr_encrypted must load AFTER protected_attributes (https://github.com/attr-encrypted/attr_encrypted/issues/107)
gem 'rake'
gem 'stripe'
gem 'will_paginate'

# asset pipeline
gem 'sprockets-rails', :require => 'sprockets/railtie'
gem 'uglifier'
gem 'sassc-rails'

group :production do
  gem 'newrelic_rpm'
  gem 'puma-heroku'
  gem 'puma'
  gem 'rails_12factor'
end

group :test do
  gem 'cucumber', '~> 2.0'
  gem 'cucumber-rails', '1.5.0', :require => false
  gem 'capybara'
  gem 'fake_stripe'
  gem 'poltergeist'
  gem 'rspec-its'
  gem 'rspec-html-matchers'
  gem 'simplecov', :require => false
  gem 'spring'                  # for 'guard'
  gem 'webmock'
  gem 'vcr'
end

group :development do
  gem 'derailed_benchmarks'
  # gem 'query_trail'
  gem 'ruby-prof'
  gem 'stackprof'
  gem 'web-console', '~> 2.0'
  gem 'spring-commands-rspec'   # for use with Guard
end

group :development, :test do
  # the following really belong in a separate 'staging' environment
  gem 'faker', :git => 'https://github.com/armandofox/faker' # needed in production too,for adding fake data to staging server
  gem 'factory_bot_rails'                                    # used by fake_data stuff

  gem 'bullet'
  # cucumber and capybara
  gem 'yaml_db', :git => 'https://github.com/armandofox/yaml_db'
  gem 'byebug'                  # 4
  gem 'pry'
  gem 'listen', '~> 2.2'
  gem 'guard-rspec', :require => false
  gem 'guard-cucumber'
  gem 'minitest'
  gem 'faye-websocket'
  gem 'database_cleaner'
  gem 'rb-readline'
  gem 'rubyzip'
  gem 'mime-types'
  gem 'chronic'
  gem 'fakeweb'
  gem 'launchy'
  gem 'rack-test'
  gem 'sdoc', '~> 0.4.0'
  gem 'coveralls', :require => false
  gem 'rspec-rails'
  gem 'rspec-collection_matchers' # should have(n).items, etc
  gem 'rspec-activemodel-mocks'   # mock_model(Customer), etc
  gem 'sqlite3'
  gem 'timecop'
  gem 'traceroute'
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 10:53:15

Heroku不支持Ruby 2.3.1、2.3.3或2.4.0

看看你的日志:

代码语言:javascript
复制
remote:  !     An error occurred while installing ruby-2.3.1
remote:  !
remote:  !     This version of Ruby is not available on Heroku-18. The minimum supported version
remote:  !     of Ruby on the Heroku-18 stack can found at:
remote:  !
remote:  !     https://devcenter.heroku.com/articles/ruby-support#supported-runtimes

看看从您的日志链接

Heroku支持以下Ruby版本和相关的Rubygems。支持的版本意味着您可以期望我们的工具和平台使用给定的版本。这也意味着你可以得到技术支持。下面是我们支持的Ruby版本: MRI:

  • 2.4.5 :修补级335,Rubygems: 2.6.14.4
  • 2.5.5:补丁级别157,Rubygems: 2.7.6.2
  • 2.6.2: 33级补丁,Rubygems: 3.0.3

还可以阅读信息如何指定Ruby版本

特别注意故障排除部分。看起来,在更改Ruby之后,以及在向Heroku推送之前,您没有提交GemfileGemfile.lock

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

https://stackoverflow.com/questions/55296887

复制
相关文章

相似问题

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