「Cloud Foundry 百日行」第81日目は、Meteor製のチャットツールRocket.Chat です。
MeteorとはNodeJSのフルスタックなリアクティブ・フレームワークで、百日行の企画で初めてのMeteor製のアプリケーションという事になります。
また、画面の雰囲気も以前にとりあげた『Let’s Chat』のようにとても今風なアプリケーションです。
基本情報
-
公式サイト
http://rocket.chat/
手順の概要は以下の通りです。
- 1) ソースコードの取得
- 2) 事前準備
- 3) アプリの起動
- 4) 動作確認
1. ソースコードの取得
$ git clone https://github.com/RocketChat/Rocket.Chat
$ cd Rocket.Chat
2. 事前準備
2.1. MongoDBのサービスインスタンス作成
$ cf create-service "Mongo DB" "Default Mongo Plan" rocket-mongo
2.2. アプリの事前push
RocketChat用のmeteor向けbuildpackのURLをapp.json(Heroku Button用の設定ファイル)から確認します。
$ cat app.json
"env": {
"BUILDPACK_URL": "https://github.com/RocketChat/heroku-buildpack-meteor.git",
-bで先ほど調べたbuildpackのURLを指定し、–no-startを指定します。
$ cf push rocket -b https://github.com/RocketChat/heroku-buildpack-meteor.git --no-start
2.3. サービスの紐付け
作成したサービスインスタンスをアプリに紐づけます。
$ cf bind-service rocket rocket-mongo
2.4. 環境変数設定
紐づけたサービスの情報を得るために『cf env』を実行し、credentialsのuri部分をメモします。
$ cf env rocket
:
"credentials": {
"uri": "mongodb://68608217-650b-4b26-91df-e70ad5105a34:password@192.168.15.82:27017/f9d8d716-8426-42a6-bd62-585aecfe43d1"
},
cf set-envでMONGO_URLという変数に先ほどメモしたcredentialsの値を設定します。
$ cf set-env rocket MONGO_URL "mongodb://68608217-650b-4b26-91df-e70ad5105a34:password@192.168.15.82:27017/f9d8d716-8426-42a6-bd62-585aecfe43d1"
cf set-envでROOT_URLという変数にアプリのURLと同じ値を設定します。
cf set-env rocket ROOT_URL https://rocket.10.244.0.34.xip.io
さらに、以下の環境変数も設定します。
cf set-env rocket NODE_ENV production
cf set-env rocket LCB_SECRETS_COOKIE secret
3. アプリの起動
$ cf start rocket
:
App started
OK
App rocket was started using this command `.meteor/heroku_build/bin/node .meteor/heroku_build/app/main.js`
Showing health and status for app rocket in org develop / space develop-space as admin...
OK
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: rocket.10.244.0.34.xip.io
last uploaded: Fri Sep 18 01:28:14 UTC 2015
stack: cflinuxfs2
buildpack: https://github.com/RocketChat/heroku-buildpack-meteor.git
state since cpu memory disk details
#0 running 2015-09-18 10:58:02 AM 0.0% 134.7M of 256M 0 of 1G
成功しました。
4. 動作確認
ブラウザーでアクセス。
Sign up:
Sing in後:
メッセージ入力:
試しに別のユーザーも作成してSing up & Sing in後にメッセージ入力を試してみます。
今回使用したソフトウェア
- cf-release (v211)
https://github.com/cloudfoundry/cf-release/tree/v211
( https://github.com/cloudfoundry/cf-release/tree/2121dc6405e0f036efa4dba963f7f49b07e76ffa ) - spring-boot-cf-service-broker-mongo
https://github.com/nota-ja/spring-boot-cf-service-broker-mongo/tree/cf-100-day-challenge-068-with-env-specific-configs - bosh-lite
https://github.com/cloudfoundry/bosh-lite/tree/552dc6869600c5350eb7ffb4fb9c9c5e79e3889d - CF CLI (cf version 6.12.0-8c65bbd-2015-06-30T00:10:31+00:00)
https://github.com/cloudfoundry/cli/releases/tag/v6.12.0 - Rocket.Chat
https://github.com/RocketChat/Rocket.Chat/tree/94ce74cb771485fe3f2ba8804169c03fa2a1d352 - heroku-buildpack-meteor
https://github.com/RocketChat/heroku-buildpack-meteor/tree/6656f7d67fdff93615fe58f5c0983cfda978ab12
投稿者:NTTソフトウェア株式会社 森川 健