MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

heroku経由でのDjangoデプロイ時の出現したエラーとその解決法まとめ

Heroku: Up and Running

Heroku: Up and Running

  • 作者: Neil Middleton,Richard Schneeman
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 2013/11/24
  • メディア: ペーパーバック
  • クリック: 2回
  • この商品を含むブログを見る

コメント

エラーが起きまくった・・・苦笑  まあたくさん収穫があったので、まとめておきます。

1:ProcFileの書き方がかなり変わったりしている

このようなエラーが出ました

・・・(略)・・・
at=error code=H10 desc="App crashed" 
・・・(略)・・・

参考になった記事
shinriyo.hateblo.jp

どうも数年間以内に書かれたノウハウがまとめられたブログにProcFileの書き方にバリエーションがでていた、最新のものと違う書き方のものもたくさんあるっぽいので今後注意が必要かもしれない。

解決策=>ProcFileのwsgiのアプリケーション指定が間違えていた。プロトタイプのDjangoプロジェクト名でgunicornを起動させようとして間違えた。

ProcFileで通ったのは結局これ。$PORTは8000で通った人もいるらしいが自分はダメだった・・・

web: gunicorn [プロジェクト名].wsgi:application -b 0.0.0.0:$PORT

2 静的ファイルの扱いが公式ドキュメント通りにいかない。

こういうエラー

・・・(略)・・・
has no attribute 'Cling' heroku
・・・(略)・・・

解決策==>django whitenoise で全部まかなうとうまくいった。

参考記事1 stackoverflow.com

参考記事2 qiita.com

3ProcFileの設定で苦戦2度目?

参考記事
d.hatena.ne.jp

ProcFileの設定を変更

4git push heroku masterできない・・・

まじなんだこりゃ・・・でもまあ簡単に直ってよかった。

こういうエラー

$ git push heroku master

fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.

参考記事 qiita.com

5 collectstaticできない

これやるとエラーになる

$ python manage.py collectstatic --noinput

参考記事 qiita.com

static fileのパス設定がなんか微妙におかしかったらしい

__init__.pyを静的ファイルを入れる予定の空のディレクトリにも配置したのも良かったのかもしれない。

6 デプロイできたはずなのに"App boot timeout"って出てアプリ使えない

herokuにてVerifying deploy...done.って出たのに、使えない・・・ログを見ると下記のようなタイムエラー??

・・・(略)・・・
at=error code=H20 desc="App boot timeout"
・・・(略)・・・

gunicorn のポート設定が8000で決め打ちするとでた気がする。これを直すと直る。

参考記事 devcenter.heroku.com

7git push heroku master して更新の度にmediaファイルが消える!?

ナンデ、ヘロクナンデ??アイエエエ!でしたよ、そういう仕様らしいよ。

解決策==>AWS s3を使う!と、無事にメディアルートも消されないようになりました・・・

参考記事 orangain.hatenablog.com

スタティックルートはOKなんだけど、media root メディアルートについての記事は検索しても見つからなかったので力業で乗り切りました・・・

疲れた・・・