Flaskで作ったアプリをHerokuへデプロイする方法

せっかく作成した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つファイルを準備すること