【HEROKU】djangoアプリのデプロイエラー
こんにちは
今回は前に開発していたdjangoアプリをHEROKUにデプロイしたらエラーではまりまくったのでその備忘録です。
基本的にはここを参考にデプロイ作業させていただきました。
https://qiita.com/frosty/items/66f5dff8fc723387108c#7-%E3%81%BE%E3%81%A8%E3%82%81
---------------------------------------------------------
・$ git push heroku masterのエラー
①No default language could be detected for this app.
③$ heroku config:set DISABLE_COLLECTSTATIC=1
・環境変数の設定エラー
・openCVの取り込みエラー
①ImportError: libSM.so.6: cannot open shared object file: No such file or directory
②App not compatible with buildpack: https://github.com/heroku/heroku-buildpack-apt
---------------------------------------------------------
■$ git push heroku masterのエラー
①エラー:No default language could be detected for this app.
どうやらなんの言語か認識できないようです。
→buildpackからpythonを追加します
https://elements.heroku.com/buildpacks
python-buildpackを選択します。
CLI:(heroku-CLIをインストールしている必要があります。)
$ heroku create --buildpack https://github.com/heroku/heroku-buildpack-python.git
②エラー:App not compatible with buildpack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/python.tgz
どうやらHEROKUでpythonのファイルを読み込むのに必要なファイルが足りなかったようです。
下記3つのファイルをディレクトリルート配下に作成します。
必要ファイル
・requirements.txt(pip list)
$pip freeze > requirements.txt
・runtime.txt(pythonパージョン)
$echo python-3.7.4 > runtime.txt
・Procfile(よくわかっていません・・)
echo web: gunicorn 【プロジェクトフォルダ名】.wsgi > Procfile
※3つのファイルを追加したら忘れずにgitに追加してプッシュしましょう
$ git add .
$ git commit -m "added"
$git push origin mastr
$ git push heroku master
(.gitignoreはプッシュ済みと想定します)
③エラー:remote: ! Error while running '$ python manage.py collectstatic --noinput'.
こちらは記載の通り
例)heroku config:set EMAIL_PORT="587" --app "アプリ名"
設定している変数の確認)$ heroku config
※参考
$ heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt
「Aptfile」を作り、アプリのルート配下におきます。(Procfileとかと同じところ)
Aptfileの内容
--------------
libsm6
libxrender1
libfontconfig1
libice6
$ pip install opencv-contrib-python