「Cloud Foundry 百日行」第9回目です。
今日のアプリは,MindMup です。
基本情報
-
公式サイト
http://www.mindmup.com/
MindMup は,mind map を書くためのツールです。 README では,「最も生産的な mind-mapping 環境を作ることが目標」と書かれています。
記事の概要は以下の通りです。
- ソースコードの取得
- デプロイ
- 動作確認に際して解決した問題
- 動作確認
ソースコードの取得
まずはいつも通りソースコードの取得から。GitHub から git でソースコードを clone してきます。
$ git clone https://github.com/mindmup/mindmup.git
mindmup ディレクトリーに移動します。
$ cd mindmup/
デプロイ
このアプリは Heroku 上での動作を想定して作られているため,同じ buildpack という仕組みを利用する Cloud Foundry 上でも,極めて簡単にデプロイできました。
$ cf push mindmup
Creating app mindmup in org nota-ja / space 100 as nota-ja...
......
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: mindmup.10.244.0.34.xip.io
last uploaded: Mon Jun 15 09:43:54 +0000 2015
stack: lucid64
state since cpu memory disk details
#0 running 2015-06-15 06:44:33 PM 0.0% 49.1M of 256M 0 of 1G
動作確認に際して解決した問題
アプリの push まではすんなりいったのですが,動作確認を始ようとした際に2つの問題に遭遇したので,その解決方法について述べます。
最初の問題: Google Analytics アカウント
このアプリは,production モードで実行される時には,Google Analytics のアカウントが必須です。アカウントをお持ちの方は,環境変数 GOOGLE_ANALYTICS_ACCOUNT
に ID をセット してください。設定方法は,
$ cf set-env mindmup GOOGLE_ANALYTICS_ACCOUNT <Google Analytics の ID>
です。設定を有効にするために,restage が必要になります。
$ cf restage mindmup
しかし,今回の動作確認では Google Analytics のアカウントを使わずに本アプリを動作させる方法として,環境変数 RACK_ENV
を production
以外の値に設定する方法をとりました。同じく設定後に restage が必要です。
$ cf set-env mindmup RACK_ENV development
$ cf restage mindmup
2番目の問題: JavaScript ライブラリーの読み込み失敗
以前はこれで問題なく動作したのですが,今回記事を書くにあたって再検証したところ,さらに別の問題 〜 特定の JavaScript ライブラリーの読み込みに失敗する 〜 に遭遇しました。
原因を調べた結果,このコミット 以降にこの問題が発生していることがわかりました。そこで web.rb
の static_ts
の値をこのコミットが入る前の値に戻す修正を 現時点のmaster に対して行ったところ,なんとか正常に操作できるようになりました。
以下はそのコード差分です。コミット自体は, こちら にあります。
diff --git a/web.rb b/web.rb
index 27faf22..9267821 100644
--- a/web.rb
+++ b/web.rb
@@ -20,7 +20,7 @@ def cache_last_news
end
end
configure do
- static_ts = '20150316155124'
+ static_ts = '20140912202404'
public_host = ENV['PUBLIC_HOST'] || 'http://static.mindmup.net'
set :earliest_supported_ios_version, (ENV["EARLIEST_IOS_VERSION"] && ENV["EARLIEST_IOS_VERSION"].to_f) || 1
set :static_host, "#{public_host}/#{static_ts}"
これが正しい対処方法ではなさそうな気もしますが,今回は時間の都合上このままで進めます。
動作確認
これで動く状態になったので,動作確認していきます。
なお私の環境では本アプリは (通常動作確認に使っている) Safari では正常に動作しなかったので,今回の動作確認は全て Chrome で行いました。
初期画面
ブラウザーからアクセスすると,最初は以下のような画面が出ます。
新規 mind map
【Create a new map】 → 【Public online map to share with the world】を選択します(他のオプションは別途サービスのアカウントやサブスクリプションが必要です)。
Mind map の描画
右手のツール・ペインを利用して,mind map を描きます。
日本語もOKです。
Mind map のエクスポート/インポート
描いた mind map をローカルファイルにエクスポート/インポートすることもできました。
Google Drive のアカウントをお持ちの方は,それを使えばもっと簡単に保存/取り出しができると思います。
以上で一通りの動作確認は終わりです。
今回使用したソフトウェア
- cf-release (v194)
https://github.com/cloudfoundry/cf-release/tree/v194
( https://github.com/cloudfoundry/cf-release/tree/345a8b3e1ea0005a3e9fced13f0bf6fa6f7ad981 ) - bosh-lite
https://github.com/cloudfoundry/bosh-lite/tree/01db9da7b4122f7d02858d92e0fe938e91256649 - CF CLI (v6.11.3-cebadc9-2015-05-20T19:00:58+00:00)
https://github.com/cloudfoundry/cli/releases/tag/v6.11.3 - MindMup
https://github.com/mindmup/mindmup/tree/b90d5d1c20676166afe23d0e71ffc1158c176e8a