質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Q&A

解決済

1回答

1849閲覧

Djangoアプリをherokuでデプロイしたが、503エラーが出てしまう

Kazuhiro-ch

総合スコア85

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

0グッド

0クリップ

投稿2021/09/08 17:21

編集2021/09/09 12:09

###質問へのいきさつ
Django産チャット兼経費管理アプリがローカルでは機能しているが、herokuへデプロイすると503エラーが出てしまい、1日トライアンドエラーを行ったが解決しなかったので質問しました。

また、Stackoverflowへのマルチポストも行っております。予めご了承ください。

###アプリの概要
staffyというアプリケーションでDjangoのMTVへの理解を深めようと思い、作ったアプリケーションです。
アプリケーションの機能としてはスタッフ間でのチャット機能と経費管理機能を持っています。
チャット機能はコチラを参照し、Djangoとchannelsという外部ライブラリを使用しています。
また、サイドに経費管理アプリが欲しかったので、なんとか1面に出力しました。
イメージは写真のような感じです。

イメージ説明

ローカルではしっかりと機能し、目標としては達成できたかなと考えております。

###開発環境
最低限のものだけ載せています。詳細はGithub

channels==3.0.4 channels-redis==3.3.0 daphne==3.0.2 dj-database-url==0.5.0 Django==3.2.7 django-environ==0.6.0 django-heroku==0.3.1 django-toolbelt==0.0.1 gunicorn==20.1.0 psycopg2==2.9.1 whitenoise==5.3.0

###コード
基本的なコードは以下の弊Githubアカウントに掲載しています。
Github

heroku

1Application Logs 2 32021-09-08T16:45:39.703261+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=staffy2021.herokuapp.com request_id=53278c7a-daec-422a-849d-224e3aef5832 fwd="134.180.192.60" dyno= connect= service= status=503 bytes= protocol=https 42021-09-08T17:00:56.790438+00:00 heroku[worker.1]: State changed from crashed to starting 52021-09-08T17:01:01.949353+00:00 heroku[worker.1]: Starting process with command `python manage.py runworker channel_layer -v2` 62021-09-08T17:01:02.563494+00:00 heroku[worker.1]: State changed from starting to up 72021-09-08T17:01:04.455930+00:00 app[worker.1]: System check identified some issues: 82021-09-08T17:01:04.455942+00:00 app[worker.1]: 92021-09-08T17:01:04.455942+00:00 app[worker.1]: WARNINGS: 102021-09-08T17:01:04.455942+00:00 app[worker.1]: calc.Expense.date: (fields.W161) Fixed default value provided. 112021-09-08T17:01:04.464600+00:00 app[worker.1]: HINT: It seems you set a fixed date / time / datetime value as default for this field. This may not be what you want. If you want to have the current date as default, use `django.utils.timezone.now` 122021-09-08T17:01:04.521129+00:00 app[worker.1]: Running worker for channels ['channel_layer'] 132021-09-08T17:01:04.529994+00:00 app[worker.1]: Traceback (most recent call last): 142021-09-08T17:01:04.530017+00:00 app[worker.1]: File "manage.py", line 22, in <module> 152021-09-08T17:01:04.530164+00:00 app[worker.1]: main() 162021-09-08T17:01:04.530166+00:00 app[worker.1]: File "manage.py", line 18, in main 172021-09-08T17:01:04.530254+00:00 app[worker.1]: execute_from_command_line(sys.argv) 182021-09-08T17:01:04.530255+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line 192021-09-08T17:01:04.530488+00:00 app[worker.1]: utility.execute() 202021-09-08T17:01:04.530498+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/__init__.py", line 413, in execute 212021-09-08T17:01:04.530722+00:00 app[worker.1]: self.fetch_command(subcommand).run_from_argv(self.argv) 222021-09-08T17:01:04.530724+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/base.py", line 354, in run_from_argv 232021-09-08T17:01:04.530939+00:00 app[worker.1]: self.execute(*args, **cmd_options) 242021-09-08T17:01:04.530939+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.7/site-packages/django/core/management/base.py", line 398, in execute 252021-09-08T17:01:04.531135+00:00 app[worker.1]: output = self.handle(*args, **options) 262021-09-08T17:01:04.531147+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.7/site-packages/channels/management/commands/runworker.py", line 46, in handle 272021-09-08T17:01:04.531238+00:00 app[worker.1]: worker.run() 282021-09-08T17:01:04.531249+00:00 app[worker.1]: File "/app/.heroku/python/lib/python3.7/site-packages/asgiref/server.py", line 59, in run 292021-09-08T17:01:04.531340+00:00 app[worker.1]: event_loop = get_running_loop() 302021-09-08T17:01:04.531355+00:00 app[worker.1]: RuntimeError: no running event loop 312021-09-08T17:01:04.736652+00:00 heroku[worker.1]: Process exited with status 1 322021-09-08T17:01:04.865819+00:00 heroku[worker.1]: State changed from up to crashed

###試してみたこと
1度DjangoCMSであるwagtailを用いたデプロイには成功しているで、それを基にトライアンドエラーをしてみました。以下が参考資料です。
参考

また、今回はasgi.pyがカギとなっているようなので、そのあたりの設定等を変えたりしました。

本当に手掛かりとなるものがあれば教えていただきたいです。よろしくお願いいたします。

###追記
普通デプロイの時は以下のように設定するべきだそうなのですが、

#wsgi.py web: gunicorn config.wsgi --log-file -

ライブラリchannelsを搭載するときに、asgiに触れているので今回はコチラで設定しています。(そういった記事が散見されたこともあり・・・・・)

#asgi.py web daphne staffy.asgi:application --port $PORT --bind 0.0.0.0 -v2 worker python manage.py runworker channel_layer -v2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DBのマイグレーションのし忘れは大丈夫でしょうか?

投稿2021/09/09 05:08

prof

総合スコア179

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kazuhiro-ch

2021/09/09 06:08

ご回答ありがとうございます。Migrateはローカル、本番共に行われております。 教えていただきたいのですが、コード的には特に問題なさそうでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問