やる気がストロングZERO

やる気のストロングスタイル

herokuでdjangoアプリをデプロイする

heroku + djangoでのwebアプリ開発がなかなか良さそう。

個人でvpsを一つ契約しているので、最初はここにデプロイすることも考えていたが、 nginx + uwsgi + djangoの設定や、既に動いている他のphpアプリとの兼ね合いなどを検討していると、いつまでたってもデプロイできなさそうだった。 簡単にデプロイできるpaasを使おうと思った。

awsとかgcpとか検討してみたが、いまいちアプリデプロイまでの方法が見えなかった。(※ドキュメント見逃しているのかも) herokuでは丁寧なチュートリアルを見つけたので、軽い気持ちで採用した。 https://devcenter.heroku.com/articles/getting-started-with-python#introduction

無料枠も用意されているので、 開発は無料で行い、完成後そのまま課金して本番運用に切り替えれるのもいい感じ。

herokuへdjangoアプリデプロイまでの作業

python(3.6.4)とdjango(2.0.3)で作成したdjangoアプリをherokuへデプロイする。

pipenvをインストールする

pip install pipenv

pipenvをつかってpythonモジュールをインストールすると、 PipfileとPipfile.lockというファイルが作成される。 herokuデプロイ時に、herokuはこのファイルを見て必要なモジュールをインストールするらしい。 以降のモジュールインストールはこのpipenvをつかって行う。

必要なモジュールをインストールする。

djangoアプリのルートにて

pipenv install django pipenv install django-heroku pipenv install gunicorn を実行する

settings.pyにheroku用の設定を追記する。

参考)https://github.com/heroku/django-heroku

コレを一番下に追記

Configure Django App for Heroku.

import django_heroku django_heroku.settings(locals())

Procfileをルート直下に置く

内容は web: gunicorn todo_share.wsgi --log-file - と記載しておく。

herokuがプロセスを立ち上げるときに実行するコマンドを記載しておくファイルっぽい。

gitのmasterブランチにここまでをコミットしておく。

herokuアカウントを作成する

https://signup.heroku.com/

herokuコマンドをインストールする

https://devcenter.heroku.com/articles/heroku-cli

herokuにアプリを作成する

heroku create を実行。

herokuにデプロイする

git push heroku master を実行

heroku側でマイグレーションを実行する

heroku run python manage.py migrate を実行

アプリを確認する

heroku open を実行