Herokuの環境設定方法(Windows)
Herokuの環境設定方法
WebフレームワークFlaskを使って、Webアプリっぽいものをつくれたので、勉強がてらあこがれの「デプロイ」をしてみようとおもう。
技術ブログ等を呼んでいると良く聴くHerokuを使ってデプロイというのをしてみよう。(デプロイについては良く意味が分かっていません。)
Herokuへ登録
Heroku Toolbeltをインストール
ここらへんは何も考えずとりあえず進めましょう。「なんだかんだ考えるよりまずはやってみる。」調べてばっかりでは結局知っているだけでなにもできていない。
コマンドラインからHerokuを立ち上げる
無事起動できました。
Prepare the app
たぶんサンプルコードのことだと思う。
git clone https://github.com/heroku/python-getting-started.git $ cd python-getting-started
なにも考えず打ち込む。なにも知らないサンプルを動かすときに変なことを考えてはいけない。無知ほどエラーを出すことはない。
これはgitを使って、サンプルアプリケーションをダウンロードしたみたい。それだけ。
中を確認すると。
python-getting-started │ .env │ .gitignore │ manage.py │ Procfile │ README.md │ requirements.txt │ runtime.txt │ ├─gettingstarted │ │ settings.py │ │ urls.py │ │ wsgi.py │ │ __init__.py │ │ │ └─static │ humans.txt │ └─hello │ admin.py │ models.py │ tests.py │ views.py │ __init__.py │ └─templates db.html
こんな感じ。そのうちのrequirements.txt
が大事らしい。
requirements.txt Django==1.6.5 dj-database-url==0.3.0 dj-static==0.0.6 django-toolbelt==0.0.1 gunicorn==19.0.0 psycopg2==2.5.3 static3==0.5.1 wsgiref==0.1.2
これはHerokuにアプリをアップロードした際に、Herokuのサーバーに準備していて欲しい環境を書いているのだと思う。なんて便利なんだー。
Deploy the app あこがれのデプロイ
さて、アプリをダウンロードして、Herokuに準備していて欲しい環境をrequrements.txtに書いて準備OK。
良くわからないがheroku create
からはじまる4つのおまじないをかけてみる。意味なんてわからなくてもいいのだ。使い始めれば嫌でもわかる。使い始めるために、これが「どんなものか」、「使えるかどうか」を確かめるのだ
$ heroku create $ git push heroku master $ heroku ps:scale web=1 $ heroku open
最後にheroku open!!としたので、勝手にブラウザが立ちあがった。
ダサい。
ただ、アドレスを見るとhttps://evening-beach-1177.herokuapp.com/となっている。もしかして、外の環境で公開されているのか!
便利だ。便利すぎる。サンプルはDjangoアプリケーションらしいが、Djangoを自前のサーバーを立てて環境構築するなんて手間を考えたら。。便利すぎる。
以上。
と思ったら終わってなかった。
View logs
ログがみれる。僕のような初心者にはそんなもの見ている暇はない。
heroku logs --tail
Define a Procfile ぷろっくファイル
先ほどのフォルダの中に確かにProcfileというものがある。
Procfile web: gunicorn gettingstarted.wsgi --log-file -
これはサーバーの種類を設定しているような気がする。
Scale the app あぷりのすけーる
さてもうわからない。おそらくスケールアップ・ダウンの話だと思われる。
HerokuではDynoと呼ばれる単位でマシンを呼んでいる感じ。
マシン?CPU?わからんがとりあえずHerokuを何人やとうかみたいな感じだと思う。これを悩めるようならばこんな記事は呼んでいない。
Declarre app dependencies 準備しておきたいパッケージはちゃんと書き出しておいてよ
heroku側で準備しておいてもらいたいパッケージについてrequirements.txtに書いておくのだけど、その依存パッケージってどうやって洗い出すの?って思われたかたもいるでしょう。そのやりかたについてのってます。良くわかりません。virtualenvを使っているなら?それかvirtualenvを使いなさいか英語が分からないので、無視します。
実はまだ半分です。もう理解するための技術がないのでここまでにします。
次は実際に自作WebアプリをHerokuでデプロイしながら勉強します。
FlaskアプリケーションをHerokuへデプロイする方法
最近使い始めたPycharmでやってみる。PyCharmでFlaskのプロジェクトを作ります。
参考をみるとvirtualenvを使って環境を作っているのですが、僕はAnacondaを使っているので、virtualenvをpip install 仕様とすると怒られました。のでパッケージ全部(相当たくさん)を色々無視して試してみます。つまり、virtualevnは使いません。
procfileの準備
web: gunicorn hello:app --log-file -
requirements.txtにゴミのようなパッケージの山を書き出し
pip reeze > requirements.txt
あとはおまじない
git に commit し, push する.
git add .
git commit -m 'Hello World!'
git push origin master
heroku に login し, push する.
heroku login
heroku create
git push heroku master
Web のインスタンス追加
heroku scale web=1
開く
heroku open
うん。失敗です。
Application Error
heroku logs --tail
これですな
C:\heroku_first_deproy>heroku logs --tail Your version of git is 1.8.1.. Which has serious security vulnerabilities. More information here: https://blog.heroku.com/archives/2014/12/23/update_your_git_clients_on_windows_and_os_x 2015-02-19T07:41:14.698655+00:00 heroku[api]: Enable Logplex by peace@gmail.com 2015-02-19T07:41:14.698690+00:00 heroku[api]: Release v2 created by peace098beat.t@gmail.com 2015-02-19T07:42:15.245796+00:00 heroku[api]: Deploy 4fb2fee by peace@gmail.com 2015-02-19T07:42:15.245796+00:00 heroku[api]: Release v3 created by peace@gmail.com 2015-02-19T07:44:51.059934+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=safe-badlands-8226.herokuapp.com request_id =77132953-df7f-4985-9161-ca3cc02d2053 fwd="61.119.15.133" dyno= connect= service= status=503 bytes= 2015-02-19T07:44:52.062903+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/favicon.ico" host=safe-badlands-8226.herokuapp.com request_id=38c1dee4-48b8-4ca4-9fc0-f5b7f4648154 fwd="61.119.15.133" dyno= connect= service= status=503 bytes= 2015-02-19T07:47:37.168802+00:00 heroku[router]: at=error code=H14 desc="No web processes running" me
全くわかりません。自分の実力が分かりますね。
もう少し挑戦します。
参考記事
HerokuでWebアプリ開発を始めるなら知っておきたいこと(1) 無料のスペック
サイトデザインがかっこよすぎる。
【Amazon.co.jp限定 】 ASUS ゲーミングモニター 23型フルHDディスプレイ (応答速度1ms / HDMI×2,D-sub×1 / スピーカー内蔵 / 3年保証) VX238H-P
- 出版社/メーカー: Asustek
- 発売日: 2014/05/28
- メディア: Personal Computers
- この商品を含むブログを見る
- 作者: 裕時悠示
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/11/17
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 丸戸史明,深崎暮人
- 出版社/メーカー: KADOKAWA
- 発売日: 2016/11/19
- メディア: 文庫
- この商品を含むブログ (2件) を見る