Published

10-05-2018

←Home

flaskをherokuにdeployする

Flaskで作ったアプリをHerokuにデプロイしたかったのだが,色々突っかかったのでメモ.

ファイル一覧

Flaskファイル

Flaskは1つのPythonファイルでアプリを作成できる便利なフレームワーク.

heroku-basic-flaskにならってapp.pyを作成.

  • app.py
    • Hello herokuと時刻を表示させるだけのコード

Herokuに必要なファイル

この記事のメイン.

Herokuに依存関係を特定させるために以下のファイルを作成する必要がある.(以下のファイルはapp.pyと同じ階層に置く)

  • Procfile

    • 実行するコマンドを宣言するファイル
    • gnicornを使うといいみたいなのでpip installしておく
    • 書き方はプロセスタイプ:コマンド という感じ.
    • app.pyを実行してほしい --> web: gunicorn app:app --log-file=-
  • requirements.txt

    • 必要なPythonパッケージを記入
      • Flask,gnicorn etc...
    • バージョンも書いておかないとNo such file or directoryとなり、コンパイルできなかった
      • BAD Flask
      • --> GOOD Flask==0.12.2
  • runtime.txt
    • pythonのバージョンを記入 (like python-X.X.X)
    • 自分のバージョンはサポートされていないと忠告が表示された(下記ログ参照)ので最新のpython-3.6.5に変更した
!     The latest version of Python 3 is python-3.6.5 (you are using python-3.5.3, which is unsupported).
!     We recommend upgrading by specifying the latest version (python-3.6.5).
       Learn More: https://devcenter.heroku.com/articles/python-runtimes

デプロイ

今回はHeroku CLIを利用.

Herokuのdeployセッティングに書いてあるとおりにカタカタと書いていく.具体的には

  • heroku loginでログイン
  • gitを初期化してremoteをcloneする
git init
heroku git:clone -a heroku-app-name
  • あとはgit add + commitして,git push heroku masterでデプロイ完了

結果 : https://warm-plateau-56649.herokuapp.com

所感

  • 大きいアプリにするならProcfileの仕組みをちゃんと理解したほうがよさげ
    • gnicornも
    • サーバーに関する知識不足を痛感
  • もう少し深掘りして完成したアプリをデプロイできるようにしたい

参考

share:

Go Top