ローカルコンピューターでRoRアプリを使用していますが、herokuに送信するとクラッシュします。エラーログにはエラー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=
編集:
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
誰もがこれを以前に持っていて、何が問題を引き起こしているのか知っていますか?解決策が見つかりません。
ありがとう。
上記と同じエラーに遭遇し、アプリはherokuでクラッシュしました(devで正常に動作していました)が、herokuのエラーログでは手がかりが見つかりませんでした。このページで他の回答を読んで、「アプリの再構築」を見た後、汗を流しました。多分、herokuコンソールにアクセスして見回すことができると考えました。私はそうし、コンソールさえクラッシュしましたが、今回は理由を教えてくれました。それは、数時間前のトラブルシューティングセッション中に削除するのを忘れていた不明瞭な変数でした。あなたが同じ問題に出くわすとは言っていませんが、コンソールを試してみたときに詳しい情報が見つかりました。お役に立てれば。
$ heroku run Rails console
私は同じ問題を抱えていました。ログからも手がかりが得られませんでした。それで、ダイノを縮小し、拡大しました。これで問題が解決しました:
heroku ps:scale web=0
数秒待って...
heroku ps:scale web=1
$heroku run Rails console
これは、Herokuログの「アプリがクラッシュした」エラーよりも詳細なエラーを端末に表示するため、最適なオプションです。
$ heroku restart
dynoを再び実行するのに役立ちました。私はHerokuを初めて使用しますが、今では知っています。
これは、間違ったポートで聞いていたときに起こりました
Listen()を「process.env.PORT」に変更しました。
http.listen((process.env.PORT || 5000), function(){
console.log('listening on *:5000');
});
の代わりに
http.listen(5000, function(){
console.log('listening on *:5000');
});
今晩も同じ問題がありました。非常に有用なエラーではないので、コンソールで実行してみました
heroku run Rails c
それは失敗し、はるかに役立つエラーを私に与えました。本番環境でメソッド呼び出しを削除することを怠っていました。修正したら、アプリは正常に動作しました。
Gitにプッシュすることでこの問題を解決しました。
git add .
git commit -am "some text"
git Push
次にHerokuにプッシュします。
git Push heroku
次に、Herokuでrake db:migrateを実行します。
heroku run rake db:migrate
私の場合、アプリでENV変数を使用していましたが、heroku configで設定されていませんでした。
herokuコンソールは適切なエラーを出しました:
heroku console
`validate_options': Missing required arguments: aws_access_key_id, aws_secret_access_key (ArgumentError)
次に、ENV configを設定します
heroku config:set AWS_ACCESS_KEY_ID='key'
Herokuを再起動します
heroku restart
できます!!
メインコードファイルの名前が間違っているため、HerokuでH10
とNodeを使用していました。編集package.json
:
{
...
"main": "correct_file_name.js",
...
"scripts": {
"start": "node correct_file_name.js"
}
}
または、ファイルの名前を変更します。
.gitignoreファイルを含めることができませんでした-> herokuを壊します。 #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
次に、テキストエディタでそれを開き、上記のコードをそこに配置します。
Herokuでこの同じH10アプリのクラッシュエラーが発生していました。 herokuインターフェースで「すべてのdynoを再起動」をクリックして、問題を解決しました。
上記の「アプリがクラッシュしました」と同じエラーが表示され、herokuアプリのログにエラーメッセージの理由に関連する多くの情報が表示されません。次に、herokuでdynosを再起動しましたが、セットアップ内のindex.jsファイルの1つに追加の中括弧があるというエラーが表示されました。この問題は、削除され、herokuにアプリが再デプロイされると修正されました。
これが同じ問題に直面している人に役立つことを願っています。
私が直面していた問題の根本は、データベースを持っていないことが原因でした。この問題を解決するには、最初にローカルデータベースをエクスポートしました。
$ 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にデプロイする方法に関するクイックガイドを作成しました こちらで確認できます 。
あなたが得るかどうかを確認してください
bash: bin/Rails: No such file or directory
実行中のログ(heroku logs -t)コマンドでyesの場合は実行してください
bundle exec rake Rails:update
ファイルを上書きしないでください、最後にこのコマンドは作成します
create bin
create bin/bundle
create bin/Rails
create bin/rake
これらのファイルをherokuにプッシュすれば完了です。
答えのリスト全体を調べた後、私はこのウェブサイトにつまずきました: https://status.heroku.com/ 現在のステータス/インシデントの詳細Heroku。頭を壁にぶつける前に、インシデントをチェックするのは常に安全です。私にとっては、エラーを引き起こしたのは、上記のリンクで公開された添付のインシデントレポートでした。
私は同じ問題を抱えていた、私は次のことをした
heroku run Rails c
コントローラーで許可されたパラメーター内で構文エラーとコンマの欠落を識別しました。前述のように、Herokuログは問題を解決するのに十分な情報を提供しませんでした。
以前にHerokuでアプリケーションがクラッシュするというメッセージを見たことはありません。
コードのコピーと貼り付けには非常に注意してください。ブロックをファイルに追加すると、フォーマットが正しくないためにエラーが発生する場合があります。
以前にこの問題が発生し、このエラーが発生しました:予期しないtIDENTIFIER、keyword_endが必要です
同じ問題がありました。私にとっては、before_actionフィルターのエラーでした(DBが空のため)before_actionフィルターを確認してください。
私は同じ問題(herokuで同じエラー、ローカルマシンで作業中)があり、エラーメッセージなしで実行されたheroku run Rails console
を含む、ここにリストされたすべてのソリューションを試しました。 heroku run rake db:migrate
とheroku run rake db:migrate:reset
を数回試しました。これで問題は解決しませんでした。運用環境で使用されているが開発環境では使用されていないファイルをいくつか調べてみると、puma.rbファイル内の空白が原因であることがわかりました。これが同じ問題を抱えている人の助けになることを願っています。これを変更すると機能しました
ActiveRecord::Base.establish_connection
End
に
ActiveRecord::Base.establish_connection
end
今日も同じ問題に遭遇しました。以前にモデルを移行しましたが、heroku run rake db:migrate
を実行しました。アプリはクラッシュしません。
Nodeを使用している場合は、コンソールでserveコマンドを直接実行してみてください。私の場合、angularアプリケーションを実行しているので、次のことを試しました。
heroku run npm start
これにより、アプリケーションの起動中に正確なエラーが表示されました。
App.set( 'ip_address'、process.env.IP || '127.0.0.1');から設定を更新しました。
に
app.set( 'ip_address'、process.env.IP || '0.0.0.0');
openshiftホスティング用に変更したもの
/
ではなく、サブディレクトリでRailsを実行しようとしたときにこの問題が発生しました。たとえば、/client
で実行されているAngular/Node/Gulpアプリと/server
で実行されているRailsアプリがありましたが、両方とも同じgitリポジトリにあったため、フロントエンドとバックエンド全体の変更を追跡します。 Herokuにデプロイしようとすると、このエラーが発生しました。この問題を抱えている人のために、サブディレクトリでRailsを実行できるカスタムビルドパックを紹介します。
ガイド ページに従ってherokuでPumaを使用し始めたときに同じ問題が発生しました。この問題は、以下に示すポート行にコメントすると解決しました。
# port ENV['PORT'] || 3000
そのため、configディレクトリのpuma.rbで上記の行を無効にすることで問題を解決しました
workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['Rails_MAX_THREADS'] || 5)
threads threads_count, threads_count
preload_app!
rackup DefaultRackup
# port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'production'
on_worker_boot do
# Worker specific setup for Rails 4.1+
# See: https://devcenter.heroku.com/articles/deploying-Rails-applications-with-the-puma-web-server#on-worker-boot
ActiveRecord::Base.establish_connection
end
Herokuへのデプロイ中に同じ問題に遭遇しました(アプリのクラッシュ)。ログには、問題の原因は示されていません。 Herokuコンソールでは、余分なブラケットのコードに構文エラーが表示されました。驚いたことに、アプリの実行中にローカルRailsに問題がなかったため、見逃しました。 Herokuへの修正とgit Pushの後、アプリはHerokuで動作を開始しました!
私の場合、使用したProcfile
はすべてを壊していました。 HerokuはProcfile
を探し、アプリの起動時にその設定を適用します。明らかに、使用したdev設定はprodサーバーにとって意味がありませんでした。名前をProcfile.dev
に変更する必要があり、すべてが正常に動作し始めました。