小村の開発環境構築(18) Django Rest FrameworkのHerokuへのデプロイ
こんばんは!小村だよ!
今回は前回作成した簡易APIをherokuにデプロイするよ!
よろしくね!
やること
- 環境変数を用意
- Herokuへのデプロイに必要なものを用意
- ローカル環境と本番環境で異なる動作をするsettings.pyを用意
- herokuへデプロイ
前提条件
- Ubuntuにリモート接続していること(これまでの環境構築参照)
手順
はじめに
私のDjangoRestFrameworkでは下記DB構成を予定してます
local(開発):sqlite3
heroku(本番):postgres
これを実現するために、最初に本番とローカルで動作を変える必要があります
一般的にこのような環境による変化は、環境変数で識別することが多いです
環境変数を用意
export APP_ENV="local"
その後
printenv APP_ENV
を実行し、local
が表示されることを確認venv
に入っているなら、venv
内で設定しないといけない(ちょいはまりした)
SECRET_KEYを環境変数化
ついでにsettings.pyのSECRET_KEYも環境変数を使用するように変更しました!
これでソースを公開しても後悔しないぜ!
SECRET_KEY = os.environ.get('SECRET_KEY') |
Herokuへのデプロイに必要なものを用意
ふむふむふむふむ!!!!
色々参考にした!
そして色々インストール時にエラー吐いた!
何が悪いんや!!!
DjangoアプリをHerokuへデプロイするのには下記が必要みたい
gunicorn
django-heroku
dj_database_url
pip install gunicorn pip install django-heroku pip install dj_database_url
どうやら
psycopg2
(postgressを使用するライブラリ)のインストールで失敗下記を実行してから再度実行でインストールできました!
- エラーのストレスと作業時間の都合でまとめきれてないのでいつかまたまとめる
sudo apt install libpq-dev pip install wheel
Herokuへのデプロイ成功したけどアプリケーションエラー
なんやかんやしてデプロイは完了した!!!!!!!!
今まとめる気おきないけど、後々のためにやったこと書くと
そんな感じで
git push heroku main
を実行!無事デプロイできたぜ!アプリケーションエラーおきてるけどな!!!
エラー原因調査
settings.pyの設定がもれてた
PROCFILEの中身とsettings.pyの中身を
api
に直した- フォルダパスを指定する必要があるっぽいね
別のエラー
Not Found!!!
ぐるぢいよぉぉぉぉ
検索します
末尾にadminつけろってさ!
つけた!うごいてる!!!
おわりに
静的ファイルに問題ありで崩れちゃってるけど、いったんこれでデプロイOKで
あまあま設定でいきます!疲れたんだもん!
ではでは、ちゃお!