Ошибка развертывания Heroku H10 (приложение разбилось)

У меня есть приложение RoR, работающее на моем локальном компьютере, но когда я отправляю его в герою, он падает. Журнал ошибок дает ошибку H10 и говорит:

    2012-11-21T15:26:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/newrelic_rpm-3.4.2/lib/new_relic/control/instance_methods.rb:95:in `start_agent'
    2012-11-21T15:26:48+00:00 heroku[web.1]: State changed from starting to crashed
    2012-11-21T15:26:48+00:00 heroku[web.1]: Process exited with status 1
    2012-11-21T15:26:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:27:00+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:30:59+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:31:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:31:19+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:32:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=
    2012-11-21T15:32:08+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=xxx.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=

Edit:

2012-11-22T10:00:58+00:00 app[web.1]: 
2012-11-22T10:00:59+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=xxx.herokuapp.com fwd= dyno=web.1 queue=0 wait=0ms connect=1ms service=26ms status=200 bytes=0

Кто-нибудь имел это раньше и знал, что может вызвать проблему? Я не могу найти решение.

Спасибо.

Ответ 1

Корень проблемы, с которой я столкнулся, состоял в том, что у меня не было базы данных. Чтобы решить проблему, я сначала экспортировал свою локальную базу данных:

$ heroku addons:add heroku-postgresql:dev 
$ heroku addons:add pgbackups
$ PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump 

Затем импортировал его в Heroku:

$ heroku pgbackups:restore DATABASE 'http://site.tld/mydb.dump'

Переменные для замены в этих примерах: mypassword, myuser, mydb и http://site.tld/mydb.dump. Обратите внимание, что мне пришлось загрузить дамп на временный сервер.

Решение всех моих проблем. Я написал краткое руководство по развертыванию Enki в Heroku, которое можно найти здесь.

Ответ 2

Я столкнулся с той же ошибкой выше, приложение зависало на heroku (работает нормально в dev), но журналы ошибок на heroku не выявляли никаких подсказок. Я прочитал другие ответы на этой странице и вспотел, увидев "восстановление приложения". Я подумал, что, может быть, я смогу сесть в консоль герою и осмотреться. Я сделал, и даже консоль рухнула, но на этот раз он сказал мне, почему. Это была какая-то неясная переменная, которую я забыл удалить во время сеанса устранения неполадок часами ранее. Я не говорю, что вы столкнетесь с той же проблемой, но я нашел больше информации, когда попытался пройти через консоль. Надеюсь это поможет.

$ heroku run rails console

Ответ 3

У меня была такая же проблема. Журналы тоже не дали мне никаких подсказок. Таким образом, я уменьшил масштаб и уменьшил количество динамиков. Это решило проблему для меня:

heroku ps:scale web=0

Ожидалось несколько секунд...

heroku ps:scale web=1

Ответ 4

$heroku run rails console 

Это лучший вариант, так как он даст вам ошибку в вашем терминале, которая будет намного более подробной, чем ошибка приложения с ошибкой в ​​ваших журналах Heroku.

Ответ 5

$ heroku restart

помог мне снова запустить мой dyno. Я новичок в Heroku, но рад, что знаю сейчас.

Ответ 6

это случилось со мной, когда я слушал не тот порт

Я изменил свой слух() на "process.env.PORT" так:

http.listen((process.env.PORT || 5000), function(){
  console.log('listening on *:5000');
});

вместо

http.listen(5000, function(){
  console.log('listening on *:5000');
});

Ответ 7

Была такая же проблема сегодня вечером. Не очень полезная ошибка, поэтому я попытался запустить консоль

heroku run rails c

он потерпел неудачу и дал мне гораздо более полезную ошибку. Я забыл удалить вызов метода в процессе производства. Как только я это исправил, приложение отлично работало.

Ответ 8

Я решил эту проблему, нажав Git:

git add .
git commit -am "some text"
git push

затем нажмите на Heroku:

git push heroku

затем rake db: migrate на Heroku:

heroku run rake db:migrate

Ответ 9

Мне не удалось включить мой файл .gitignore → , который разбивает герою. #doh

Вот рабочий файл .gitignore

/.bundle
/vendor/bundle/
/vendor/ruby/


db/*.sqlite3
/db/*.sqlite3-journal
/log/*
/tmp/*


**.war
*.rbc
*.sassc
.redcar/
.sass-cache
/config/config.yml
/config/database.yml
/coverage.data
/coverage/
/db/*.javadb/
/db/*.sqlite3
/doc/api/
/doc/app/
/doc/features.html
/doc/specs.html
/public/cache
/public/stylesheets/compiled
/public/system/*
/spec/tmp/*
/cache
/capybara*
/capybara-*.html
/gems
/specifications
rerun.txt
pickle-email-*.html
.zeus.sock

**.orig

.DS_Store

/nbproject/

.idea

/*.tmproj

**.swp

.env
.powenv

Чтобы создать файл .gitignore, в терминале перейдите в каталог приложений и используйте следующую команду

touch .gitignore

Затем вы можете открыть его в текстовом редакторе и вставить в него код.

Ответ 10

Я получал эту же ошибку приложения H10 с ошибкой в ​​Heroku. Я нажал "перезагрузить все динамики" в интерфейсе heroku, и проблема решена.

Ответ 11

В моем случае я использовал переменные ENV в своем приложении, но не был установлен в конфигурации heroku.

Консоль heroku дала правильную ошибку:

heroku console
`validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)

Затем установите конфигурацию ENV

heroku config:set AWS_ACCESS_KEY_ID='key'

Перезапустите Heroku

heroku restart

он работает!!

Ответ 12

Посмотрите, получаете ли вы

bash: bin/rails: No such file or directory

в журналах во время работы (heroku logs -t), если да, то выполните Run

bundle exec rake rails:update

Не перезаписывайте свои файлы, в конце концов эта команда создаст

  create  bin
  create  bin/bundle
  create  bin/rails
  create  bin/rake

перетащите эти файлы в герою, и вы закончите.

Ответ 13

У меня такая же ошибка выше, как и "приложение разбилось", и журналы приложений heroku не показывают много информации, связанной с причинами ошибки. Затем я перезапустил dynos в heroku, а затем он показал ошибку, говорящую о дополнительной фигурной скобке в одном из файлов index.js в моей настройке. Проблема была исправлена ​​после ее удаления и перераспределения приложения на heroku.

Надеюсь, что это будет полезно для тех, кто сталкивается с одной и той же проблемой.

Ответ 14

Изучив весь список ответов, я наткнулся на этот веб-сайт: https://status.heroku.com/, где подробно рассказывается о текущем состоянии/инцидентах с Heroku. Всегда безопасно проверить наличие инцидентов, прежде чем ударить головой о стену. Для меня это был прикрепленный отчет об инциденте, опубликованный по вышеупомянутой ссылке, который стал причиной ошибки.

SERVER INCIDENT UPDATE

Ответ 15

У меня была такая же проблема, я сделал следующее

heroku run rails c

Это идентифицировало синтаксическую ошибку и пропущенную запятую в разрешенных параметрах контроллера. Как уже упоминалось выше, журналы Heroku не предоставили достаточной информации для решения проблемы.

Я не видел сообщения о сбое приложения на Heroku ранее.

Ответ 16

Сегодня я столкнулся с той же проблемой. Я сделал heroku run rake db:migrate, хотя раньше мигрировал модель, и приложение не сработало.

Ответ 17

Будьте очень осторожны при копировании и вставке кода. Иногда, когда вы добавляете блок в файл, он отформатирован неправильно и приведет к ошибке.

У меня была эта проблема раньше и получила эту ошибку: неожиданный tIDENTIFIER, ожидающий ключевое слово_енд

Ответ 18

Была такая же проблема. для меня это была ошибка в фильтрах before_action (потому что пустая БД) Проверяйте фильтры before_action, возможно, они бросают unhendled exeptions.

Ответ 19

У меня возникла эта проблема при попытке запустить Rails в подкаталоге, а не в /. Например, у меня было приложение Angular/Node/Gulp, работающее в /client, и приложение Rails, работающее в /server, но оба они были в одном репозитории git, поэтому я мог отслеживать изменения через передний и задний концы. Я получил эту ошибку, пытаясь развернуть их в Хероку. Для всех, у кого есть эта проблема, вот пользовательский buildpack, который позволит запускать Rails в подкаталоге.

https://github.com/aarongray/heroku-buildpack-ruby

Ответ 20

У меня была такая же проблема (такая же ошибка на герою, работающая на локальной машине), и я попробовал все перечисленные здесь решения, включая heroku run rails console который работал без сообщений об ошибках. Я несколько раз пробовал heroku run rake db:migrate и heroku run rake db:migrate:reset несколько раз. Ничто из этого не решило проблему. Просматривая некоторые файлы, которые используются в процессе производства, но не в среде dev, я нашел в файле puma.rb некоторые пробелы. Надеюсь, это поможет кому-то, у кого есть такая же проблема. Это изменило его работу.

  ActiveRecord::Base.establish_connection
  End

к

  ActiveRecord::Base.establish_connection
end

Ответ 21

Я столкнулся с той же проблемой при развертывании в Heroku (сбой приложения). Журналы не указывали, в чем проблема. Консоль Heroku отображала синтаксическую ошибку в коде дополнительной скобки. Удивительно, но у меня не было проблемы с локальными рельсами во время запуска приложения, и, следовательно, он пропустил его. После коррекции и git нажмите на Heroku, приложение начало работать на Heroku!

Ответ 22

Я обновил свои настройки с app.set('ip_address', process.env.IP || '127.0.0.1');

to

app.set('ip_address', process.env.IP || '0.0.0.0');

который я изменил для хоста Openshift

Ответ 23

У меня был H10 с Heroku и Node из-за неправильного имени основного файла кода. Изменить package.json:

{

  ...

  "main": "correct_file_name.js",

  ...

  "scripts": {
    "start": "node correct_file_name.js"
  }
}

Или переименуйте файл.

Ответ 24

В моем случае Procfile я использовал, Procfile все. Heroku ищет Procfile и применяет его настройки при запуске приложения - очевидно, что настройки dev, которые я использовал, не имели никакого смысла для сервера prod. Мне пришлось переименовать его в Procfile.dev и все стало работать нормально.