「Heroku/HerokuにPlayFramework1.2.5のアプリを公開してみる(Windows)」の編集履歴(バックアップ)一覧に戻る

Heroku/HerokuにPlayFramework1.2.5のアプリを公開してみる(Windows) - (2013/08/19 (月) 00:50:13) のソース

* 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でデプロイするとよいと思います。

* 目次
#contents(fromhere=true)

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


* 1.Herokuのアカウントを作成する
+「https://id.heroku.com/signup」にメールアドレスを入力し「Sign Up」をクリック。
+ 届いたメールのURLをクリック。
+ パスワードを入力して「Save」をクリック。

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

* 3.herokuコマンドでログイン
+ コマンドプロンプトを起動
+ 「heroku login」と打ち込んでエンター。
+ メールアドレスとパスワードの入力を求められるので入力します。
+ 公開鍵作る?って英語で聞かれるのですが、Windowsでは上手く行かないので「n」を入力しました。
#highlight(){{
>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コマンドでログイン」で作成しなかった公開鍵を作成します。
+ TeraTermを起動し「設定」メニューから「SSH鍵生成」を選択します。
+ 鍵の種類「RSA」ビット数「2048」で「生成」をクリックします。
+ 「公開鍵の保存」をクリックして、公開鍵を保存します。
+ 「秘密鍵の保存」をクリックして、秘密鍵を保存します。
++ 公開鍵、秘密鍵ともに「C:\Users\<ユーザー名>\.ssh」のディレクトリに配置しました。
++ パスフレーズは空のまま作成しましたが、設定すると何が起きるのかな?

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

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

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

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

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


* 10.Gitにメールアドレスとユーザー名登録
+ 以下のコマンドで、Gitにメールアドレスとユーザー名を登録します。
#highlight(){{
git config --global user.email "<メールアドレス>"
git config --global user.name "<ユーザー名>"
}}

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

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

** 12-b.コマンドからアプリケーションを作成する場合
+ 「heroku create --app <アプリケーションID>」

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

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

コマンドラインから「heroku info --app <アプリケーションID>」と打ち込んでも、以下のようにURLが表示されます。
#highlight(){{
>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/
}}

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

* アンケート(このページの情報はお役に立ちましたか?)
#tvote(役に立った,役に立たない,分かりにくい,間違っている)