Как я могу решить эту проблему, чтобы развернуть приложение Rails на Heroku? - PullRequest
0 голосов
/ 17 ноября 2018

У меня проблемы с развертыванием приложения на Rails для Heroku .

Когда я попытался перенести свой проект в Heroku ( git push heroku master ), он выдал мне эту ошибку:

Counting objects: 300, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (269/269), done.
Writing objects: 100% (300/300), 255.34 KiB | 6.08 MiB/s, done.
Total 300 (delta 73), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote:  !     Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
remote:             Detected buildpacks: Ruby,Node.js
remote:             See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
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.5.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.5.tgz -s -o - | tar zxf - ' failed on attempt 2 of 3.
remote: 
remote:  !
remote:  !     An error occurred while installing ruby-2.3.5
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
remote: Verifying deploy...
remote: 
remote: !   Push rejected to agora-challenge.
remote: 
To https://git.heroku.com/agora-challenge.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/agora-challenge.git'

Однако я изменил свойверсия ruby, подходящая для heroku 18.

Я искал здесь https://devcenter.heroku.com/articles/ruby-support#supported-runtimes версию ruby, которая в настоящее время совместима

Я установил rvm install "ruby-2.5.3"

Я добавил строку ruby ​​'2.5.3' в Gemfile приложения

Я запустил пакетную установку (Нет сообщений об ошибках)

И, наконец, я запустил gitpush heroku master

Вот мой Gemfile

source 'https://rubygems.org'
ruby '2.5.3'


gem 'jbuilder', '~> 2.0'
gem 'pg', '~> 0.21'
gem 'puma'
gem 'rails', '5.1.6'
gem 'redis'

gem 'autoprefixer-rails'
gem 'bootstrap-sass', '~> 3.3'
gem 'font-awesome-sass', '~> 5.0.9'
gem 'sass-rails'
gem 'simple_form'
gem 'uglifier'
gem 'webpacker'
gem 'devise'

group :development do
  gem 'web-console', '>= 3.3.0'
end

group :development, :test do
  gem 'pry-byebug'
  gem 'pry-rails'
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'dotenv-rails'
end

Я видел этот похожий вопрос: Возникли проблемы с развертыванием приложения Rails в Heroku , ноОтвет советовал перейти по той же ссылке, что и выше ...

Спасибо!

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

Я отправляю решение, может быть поздно, но может помочь другим. Решение большинство людей публикуют с просьбой обновить версию ruby. Обновление версии ruby ​​в приложении может занять некоторое время. Но с помощью приведенного ниже решения приложение может быть развернуто без обновления версии ruby.

Текущим стеком, используемым герою, является heroku-18, имеющий образ Ubuntu 18.04. Минимальное поддерживаемое время выполнения: ruby 2.4.5, , другая информация здесь .

Чтобы запустить приложение с этой рубиновой версией, вам нужно понизить стог heroku для вашего приложения.

Откройте консоль и запустите heroku stack, вы найдете.

  cedar-14
  container
  heroku-16
* heroku-18

Вам нужно понизить версию до стека, который поддерживает вашу версию ruby. Для ruby 2.3.x вы можете установить heroku-16

heroku stack:set heroku-16

Теперь, если вы запустите heroku stack, вы найдете набор heroku-16 для вашего приложения.

  cedar-14
  container
* heroku-16
  heroku-18

Возможно, вы столкнулись с проблемой безопасности на консоли, Информация здесь .

Попробуйте обновить только звездочки до минимума 3.7.2, например:

bundle update sprockets --bundler '3.7.2'

Или вы можете установить:

config.assets.compile = false # Disables security vulnerability

Выполнить git push heroku master. Boom !! Ваше приложение успешно развернуто.

0 голосов
/ 19 ноября 2018

У вас должен быть .ruby-version файл с 2.5.3 в нем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...