HerokuにPlayFramework1.2.5のアプリを公開してみる(Windows)

HerokuでもPlayFrameworkを使えると聞いて試してみました。
dotCloudと違って、全部ウィンドウズで作業出来るのは便利です。
ここに書いてある内容は「https://devcenter.heroku.com/articles/play」を見ながら所々google先生に聞きつつ作業した内容です。
※ 2013/8/14追記
「Heroku Security Team」から「PlayFrameworkのバージョンを1.2.6にアップして!」という内容(たぶん)のメールが届きました。きっとセキュリティ的に重要なアップデートなので、これからPlayFrameworkの1.2.x系でデプロイする方は1.2.6でデプロイするとよいと思います。

目次


前提条件

PlayFramework1.2.6のインストールが完了して、パスが通っている事。
JDK1.6がインストール完了してパスが通っている事。


1.Herokuのアカウントを作成する

  1. https://id.heroku.com/signup」にメールアドレスを入力し「Sign Up」をクリック。
  2. 届いたメールのURLをクリック。
  3. パスワードを入力して「Save」をクリック。

2.Toolbeltをインストール

  1. ログインすると、まずToolbeltをインストールするといいよって画面がでるので、Toolbeltをダウンロードします。
  2. 「heroku-toolbelt.exe」を実行しフルインストールしました。

3.herokuコマンドでログイン

  1. コマンドプロンプトを起動
  2. 「heroku login」と打ち込んでエンター。
  3. メールアドレスとパスワードの入力を求められるので入力します。
  4. 公開鍵作る?って英語で聞かれるのですが、Windowsでは上手く行かないので「n」を入力しました。
>heroku login
Enter your Heroku credentials.
Email: <アカウント作成時のメールアドレス入力>
Password (typing will be hidden):<自分のパスワード入力>
Could not find an existing public key.
Would you like to generate one? [Yn] n
Authentication successful.
 

4.TeraTermで公開鍵作成

「3.herokuコマンドでログイン」で作成しなかった公開鍵を作成します。
  1. TeraTermを起動し「設定」メニューから「SSH鍵生成」を選択します。
  2. 鍵の種類「RSA」ビット数「2048」で「生成」をクリックします。
  3. 「公開鍵の保存」をクリックして、公開鍵を保存します。
  4. 「秘密鍵の保存」をクリックして、秘密鍵を保存します。
    1. 公開鍵、秘密鍵ともに「C:\Users\<ユーザー名>\.ssh」のディレクトリに配置しました。
    2. パスフレーズは空のまま作成しましたが、設定すると何が起きるのかな?

5.Herokuに公開鍵転送

  1. コマンドプロンプトから「heroku keys:add」でHerokuに公開鍵を転送します。

6.ローカルにPlayFrameworkアプリを作成&動作確認

  1. コマンドプロンプトから「play new <アプリケーション名>」でアプリケーションを作成します。
  2. 「play run <アプリケーション名>」でアプリケーションを起動し。
  3. ブラウザで「http://localhost:9000/」に接続して動作確認します。
  4. 気がすんだらコマンドプロンプトで「Ctrl+C」を入力してPlayFrameworkを停止します。

7.「conf/dependencies.yml」編集

英語読めないのでなんとなくですが、アプリケーションのルートの「conf/dependencies.yml」を編集して、「require: - play」の記述に、正確なバージョンを記入しないと行けないみたいです。
# 編集前
require:
    - play
↓
# 編集後
require:
    - play 1.2.6
 
PlayFramework1.2.3の場合、このファイルが無いかもなので作ってください。

8.「.gitignore」作成

  1. 以下の内容で、アプリケーションのルートに「.gitignore」ファイルを作成します。
bin/
data/
db/
dist/
logs/
test-result/
lib/
tmp/
modules/
 
「新しいテキストドキュメント.txt」を作ってからリネームしようとしたら、エクスプローラーに跳ねられたので、テキストエディタの名前を付けて保存でファイル名を「.gitignore」にしました。

9.「Profile」作成

  1. 以下の内容で、アプリケーションのルートに「Profile」ファイルを作成します。
web:    play run --http.port=$PORT $PLAY_OPTS


10.Gitにメールアドレスとユーザー名登録

  1. 以下のコマンドで、Gitにメールアドレスとユーザー名を登録します。
git config --global user.email "<メールアドレス>"
git config --global user.name "<ユーザー名>"
 

11.アプリケーションをローカルのリポジトリにコミット

  1. 以下はコマンドプロンプトでの作業です。
  2. アプリケーションのルートにCDコマンドで移動
  3. 「git init」でリポジトリとして初期化
  4. 「git add .」でファイルをリポジトリに登録
  5. 「git commit -m "init"」でリポジトリに登録した内容を確定(コミット)

12.Herokuに空のアプリケーション作成

12-a.Herokuのダッシュボードから作成する場合

  1. Herokuのダッシュボード「https://dashboard.heroku.com/apps」に、「Create a new app」ボタンがあるのでクリックします。
  2. アプリケーションIDを入力して「Create app」をクリック
    1. 今回は「hello-heroku-chapati」にしました。
  3. アプリケーションIDの重複は許されないので、名前でエラーになったら重複しないIDに変更しましょう。
    1. アプリケーションIDを省略すると、自動的に名前を付けてもらえます。
  4. 上手く作成できたら以下の情報が表示されます。
    1. 「App URL:<アプリケーションのURL>」
    2. 「Git URL:<GIT用のアプリケーションURL>」

12-b.コマンドからアプリケーションを作成する場合

  1. 「heroku create --app <アプリケーションID>」

13.アプリケーションをHerokuに送信

  1. 以下はコマンドプロンプトでの作業です。
  2. アプリケーションのルートにCDコマンドで移動
  3. 「git push <GIT用のアプリケーションURL> master」で、GitにアプリケーションをPush&Herokuに公開
    1. 今回は「git push git@heroku.com:hello-heroku-chapati.git master」になりました。

14.ブラウザで確認

Herokuのダッシュボードの「Domains」に、自分のアプリへのリンクがあるので、そこからブラウザで確認してみましょう。
今回作成したのは「http://hello-heroku-chapati.herokuapp.com/」でした。

コマンドラインから「heroku info --app <アプリケーションID>」と打ち込んでも、以下のようにURLが表示されます。
>heroku info --app hello-heroku-chapati
=== hello-heroku-chapati
Addons:        heroku-postgresql:dev
Git URL:       git@heroku.com:hello-heroku-chapati.git
Owner Email:   hogehoge@example.com
Region:        us
Repo Size:     45M
Slug Size:     77M
Stack:         cedar
Tier:          Legacy
Web URL:       http://hello-heroku-chapati.herokuapp.com/
 

コメント(バグ、間違い、こんな情報が欲しい等ありましたら)

名前:

アンケート(このページの情報はお役に立ちましたか?)

順位 選択肢 得票数 得票率 投票
1 分かりにくい 0 (0%)
2 役に立たない 0 (0%)
3 役に立った 0 (0%)
4 間違っている 0 (0%)
その他
投票総数 0