Heroku コマンドメモ
定番の流れ
#git init後に… $ heroku create <アプリ名>
アプリ名は省略可能で,そうするとランダムな名前が自動で割り当てられる.
また,自分で決める場合も重複は認められない.
※createはgit init以降に行う.でないと下記太字のリモートリポジトリの自動割当が行われない.
$ git push heroku master
ローカルリポジトリにcommitしたファイル群を,Herokuのリモートリポジトリへ反映.
なお,createした段階で"heroku"にリモートリポジトリのURLが自動的に割り当てられている(リモートリポジトリの一覧にherokuのリポジトリが登録される)
変数の定義・削除
定義: config:set
削除: config:unset
# 定義 $ heroku config:set MY_VAR1=val1 #まとめて定義 $ heroku config:set MY_VAR2=val2 MY_VAR3=val3 #削除 $ heroku config:unset MY_VAR1 #まとめて削除 $ heroku config:unset MY_VAR2 MY_VAR3
ログを確認
コマンド実行時点でのログを確認
$ heroku logs
リアルタイムで確認(Control + Cで終了)
$ heroku logs -t
尚,標準出力(print文による出力)はログに残る.
関連ファイル
Procfile
書式
<process type>: <command>
Pythonを使う例?
web: python app.py
Flaskを使う例(gunicornと呼ばれるWSGI(Web Server Gateway Interface)を用いる)
web: gunicorn <アプリ名>:app --log-file
--log-fileオプション: 標準エラーを出力
アプリ名は,test.pyなら"test" ※拡張子不要
一方,Heroku側が自動でここらへんを適切に処理してくれるので,不要な場合も多いらしい.
(ただ,明確化のために書くなら推奨されているとかなんとか)
requirements.txt
必要なパッケージ等を記述する.
以下のようにすると,pipで入れたローカル開発環境のライブラリ等をそっくりそのまま適用できる.
$ pip freeze > requirements.txt