こんにちは,ちゆりです。
今日はすごくマニアックなお話。だけども困っている人にはピンポイントで届けられる。そんな記事です。
以前作成したwebアプリ(Heroku + Flask)
→ちゆりの募金箱未だに細々と募金が続いております。(これは,募金してくれても特に何も起こらないのですが...興味本位でしょうね。)
以前コチラの記事で紹介した
Herokuのデプロイ作業にてProcfileの作成が必要でした。
この記事を書いたときはProcfileってなんやねん状態でしたが,しっかり勉強してみました。
Procfileってなんなんですか
Herokuのプラットフォーム上にあるWebアプリがどのようなコマンドで動くのかを定義するファイルのこと。Webアプリを動かす指示書みたいなものだろうか。
そして今回Flask/Djangoを扱うためにはWSGIが必要である。
え?WSGI分かんない?仕方ないなぁ。教えてあげよう。
WSGI: Web Server Gateway Interface
"ウィズギー"て読むんだってよ。初耳学
要は,Webアプリとサーバーをつなぐもの。って感じ
Flask/Djangoを動かすためには今回WSGIとしてはgunicornを使った。
Procfileの宣言の定義
ちゃんとProcfileにも書き方があるらしい。
<process type> : <command>
前回Herokuでデプロイした際には
web: gunicorn <アプリ名(僕のアプリはapp.pyなので"app">:app --log-file -
と記述したのですが,形式に当てはめると"web"が"<process type>"で"gunicorn ~"が"<command>"の部分になりますね。--log-file--はオプションで標準エラーを出力してくれます。(なくても結構)
(<command>はターミナルとかでよく扱うコマンドの形式で記述)
Procfileを作成したらアプリケーションと同じ階層におけばOK
Procfile不必要説も!?
Procfileについては実は以下で詳しく説明されている。
https://github.com/herokaijp/devcenter/wiki/procfile
だがしかし,なんと
Herokuによりサポートされているほとんどの言語で書かれたアプリをディプロイするのに、
https://github.com/herokaijp/devcenter/wiki/procfileProcfile
は必要はありません。 プラットフォームが使われている言語を自動的に検知し、アプリケーションサーバーを起動するために、デフォルトのweb
プロセスタイプを クリエートしてくれます。
と書いている。なにぃ!!?
まさかの不必要説濃厚
明確に
https://github.com/herokaijp/devcenter/wiki/procfileProcfile
をクリエートすることは、アプリケーションにおける、より上位のコントロールと柔軟性を保つために推奨されます。
そういうことですか。
無駄に勉強しちゃったよ。
いや,勉強したことに無駄はない。
ありがとう
★Django関連記事
★Flask関連記事
IT業界用語は横文字多すぎてなんて読むのか全然わからない。
まずは用語の意味と読みを調べるのからはじめるのはあるある。
コメント