Bluemixは、IBMが提供しているPaaSで、開発言語(ランタイム)はSwift、Java、JavaScipt、Ruby、PHP、Python、Perlなどの言語が利用できます。今回は、Bluemixで「IBM SDK for Node.js」を使用して、Node.jsの動作環境を構築します。スタータコードとして提供されているWebアプリケーションをパソコンにインストールし、cf ツールを使用して、Bluemix 上へデプロイして実行します。動作環境はWindows 7 Professional 32bitです。
Bluemix実行環境の構築
「Bluemix へようこそ」で新規アカウントを作成します。初めての方は、30日間の無料アカウントが作成できす。
ログインすると、次のように表示がされます。
「アプリケーションの作成」ボタンを押すと、次のように表示されます
「Cloud Foundry ランタイム」を押し、「SDK for Node.js」をクリックすると、次のように表示され、アプリ名「Hello-T」を設定します。
下部右の「作成」ボタンを押すとHello-Tのダッシュボードが作成されます。
このダッシュボードでは、
- IBM® Bluemix®コマンド・ライン・インターフェースのダウンロード
- Cloud Foundry コマンド・ライン・インターフェースのダウンロード
- スタータコードのダウンロード
- パソコンからのデプロイの手順
などの情報が表示されます。
デプロイツールのインストール
パソコンで開発したWebアプリケーションは次のツールを使って、Bluemixにデプロイできます。
- IBM® Bluemix®コマンド・ライン・インターフェース
- Cloud Foundry コマンド・ライン・インターフェース
IBM® Bluemix®コマンド・ライン・インターフェースのインストール
Bluemixに接続するためのコマンドで、ダッシュボードの「IBM® Bluemix®コマンド・ライン・インターフェースの」ボタンをクリックし、画面上部右の「すべてのバーション」をクリックすると次の表示されるのでWin32の最新バージョンを選択し、パソコンにインストールします。
Cloud Foundry コマンド・ライン・インターフェース(cf-cli)のインストール
cf-cliは、IBM® Bluemix®にアプリケーションをデプロイするために使用され、パソコンのコマンドプロンプトで実行されます。つぎの「cloudfoundry/cli URL」から「v6.14.1」をダウンロードして、パソコンにインストールします。
BluemixでNode.jsを構築した動作確認
Bluemixで提供されるスターター・コードを用いて動作確認を行います。
「スターター・コードのダウンロード」ボタンを押して、スターター・コードをダウンロードし、パッケージを新規ディレクトリーに解凍して開発環境をパソコンのCドライブの直下にそのままコピーして、セットアップします。デプロイのコマンドは、パソコンのコマンドプロンプトから入力します。
スターター・コードが置かれているディレクトリーに移動します。
cd \Hello-T
IBM® Bluemix® に接続します。
bluemix api https://api.ng.bluemix.net
Bluemix にログインします。パスワードが聞かれるので入力します。
bluemix login -u xxxxxxxx -o “TomoSoft” -s “xxxx”
Webアプリケーションを Bluemix にデプロイします。
cf push “Hello-T”
ブラウザーで以下の URL を入力して、アプリにアクセスします。
Hello-T.mybluemix.net
ブラウザーに次の表示があれば、Node.jsが正常に動作しています。
Bluemix にアプリをデプロイする時のエラー「panic: runtime error」について
次に示すように、cfのバージョンがv6.22.2で、「cf push “Hello-T”」コマンドを実行時に「panic: runtime error: invalid memory address or nil pointer dereference」のエラーが発生しました。cfのバージョンをv6.14.1にダウングレードすると正常にデプロイが完了しました。どうも最新のバージョンと相性が悪いみたいです。
panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x0 pc=0x52330b] goroutine 944 [running]: panic(0xaf1900, 0x202de030) /usr/local/go/src/runtime/panic.go:500 +0x331 sync/atomic.LoadUint64(0x206e82ac, 0x20844690, 0x206e8210) /usr/local/go/src/sync/atomic/asm_386.s:159 +0xb code.cloudfoundry.org/cli/vendor/github.com/cloudfoundry/noaa/consumer.(*Consumer).retryAction(0x206e8210, 0x20405cc0, 0x206ea480) /tmp/build/80754af9/gopath/src/code.cloudfoundry.org/cli/vendor/github.com/cloudfoundry/noaa/consumer/async.go:269 +0xa2 code.cloudfoundry.org/cli/vendor/github.com/cloudfoundry/noaa/consumer.(*Consumer).streamAppDataTo(0x206e8210, 0x20844680, 0x206bd6e0, 0x24, 0x203d2380, 0x307, 0x2069c4f0, 0x206ea480, 0x206bfa01) /tmp/build/80754af9/gopath/src/code.cloudfoundry.org/cli/vendor/github.com/cloudfoundry/noaa/consumer/async.go:188 +0x10c code.cloudfoundry.org/cli/vendor/github.com/cloudfoundry/noaa/consumer.(*Consumer).tailingLogs.func2(0x206ea480, 0x206ea440, 0x206e8210, 0x20844680, 0x206bd6e0, 0x24, 0x203d2380, 0x307, 0x2069c4f0, 1) /tmp/build/80754af9/gopath/src/code.cloudfoundry.org/cli/vendor/github.com/cloudfoundry/noaa/consumer/async.go:163 +0xae created by code.cloudfoundry.org/cli/vendor/github.com/cloudfoundry/noaa/consumer.(*Consumer).tailingLogs /tmp/build/80754af9/gopath/src/code.cloudfoundry.org/cli/vendor/github.com/cloudfoundry/noaa/consumer/async.go:164 +0x106
IBM Bluemixのサポート
IBM Bluemixのサポートを受けるには、次のようにダッシュボードの右上にあるサポートをクリックして、「Add Ticket」を選択します。エラー状況を設定する画面が表示されるので記述します。日本語の質問でも回答が返ってきます。ただし英語です。2日後に回答が返ってきました(早いです)。