2015.5.22
Webアプリを作ったりするモチベーションを保つには、無駄な時間はなるべく避けたいところ。特に初めてのアプリをdeployするなんて時にはググるだけで「ああ、わからんからもういいや」となってしまいがち。今回はそんな初心者デプロイ(言い方はおかしい)向けのgitを一切使わないデプロイをやってみましょう。
一般的なレンタルサーバーでアプリを公開するのは実は敷居が高いです。Herokuを使いましょう。まずはHerokuでアカウントを取得し、Dropboxのアカウントも作りましょう。HerokuはPythonやRubyなどで作ったアプリをどん、と公開するときに便利です。アプリケーションの設置は5つまで無料。便利なアドオンなんかも充実しているので、テストに使う場合にも凄くお役立ちだと思います。
gitを使うデプロイの場合は、
$ heroku login $ cd アプリプロジェクトファイル/ $ git init $ heroku git:remote -a アプリ名 $ git add . $ git commit -am "make it better" $ git push heroku master
というgitコマンドを使ったりするわけですが、エラーを吐かれるとそれを調べるだけで一苦労。そもそも相談相手が居ない場合や、ぐぐっても知識不足から理解不能に陥りやすいです。せっかく作ったアプリなんだからWeb上で動いているのをすぐに見たいですよね。いよいよやっていきましょう。
まずはHerokuダッシュボードの右上から + ボタンで新規アプリを作ります。
次にアプリ名称を決めます。Heroku全体で使用されていない名前じゃないとダメです。
Dropboxと連携しますのでDropboxのアイコンをクリック。
これでDropboxの中に アプリ/Heroku/アプリ名称 のフォルダが完成しました。Dropboxの同期が終われば直ぐ確認できるはずです。後はこのフォルダの中に出来たアプリ一式をほり込んでHerokuのデプロイボタンを押したら待つだけ。おしまい!簡単ですね。
Pythonの場合はフォルダの中身はこんなふうになります。
ProProcfileの中身は
web: python index.py
という感じで最初に動かすメインのスクリプトを指定します。
requirements.txtの中身はモジュールの依存関係を表したものですね。これを書いておかないとデプロイの時にインストールしてくれません。中身は例えばこのようになっています。
bottle==0.12.8 oauthlib==0.7.2 requests==2.7.0 requests-oauthlib==0.5.0 unicodecsv==0.12.0 gunicorn==19.3.0 psycopg2==2.6 SQLAlchemy==1.0.4 whitenoise==1.0.6
runtime.txtはPythonのバージョンを表記します。
python-2.7.9
もし今回のようにbottleを使ったアプリをデプロイする場合はbottleの最下部のrunを
run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))
と書き換えておきましょう。
それではレッツデプロイ!