せっかく作成したFlaskのアプリを公開したいと思いますよね,,,
今回は、Herokuを用いて公開します。
Flaskで作ったアプリをHerokuへデプロイするには、3つのファイルが必要になります。
注意
この記事では、Flaskでアプリを作成し、ローカルで動くファイルが既にあることを想定しているため、Flaskの内容は書いていません。1つ目のファイル Profile
拡張子要りません。Profileというファイル名のファイルを作成します。
内容は、以下のように記述します。
web: gunicorn app:app --log-file=-
2つ目のファイル requirement.txt
以下のコマンドで作成しましょう。
$ pip freeze > requirements.txt
ここで、作成されたrequirement.txtを確認します。
gunicornがなければ、インストールしましょう。
$ pip install gunicorn
また、opencv-pythonを用いたい場合、以下の記事のようにしないとうまく動作しません。
3つ目のファイル runtime.txt
runtime.txtには現在のPythonのバージョンを記載します。
Python -Vで確認しましょう。
$ python -V
Python 3.9.13 #例
しかし、全てのバージョンに対応していませんので、https://devcenter.heroku.com/articles/python-supportで確認して、ローカルで使用したバージョンがなければ、近いバージョンを選択しましょう。
以下のようにruntime.txtに記述しましょう。
python-3.9.16
3.9.16は、各々適時変更してください。
この3つのファイルをapp.pyやtemplatesディレクトリと同じ階層に置きます。
そして、Herokuへデプロイしましょう。
Herokuのデプロイはこちらで詳しく書かれています。
まとめ
FlaskのアプリをHerokuへデプロイするには、
- Profile
- requirements.txt
- runtime.txt
の3つファイルを準備すること