Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

bluemixでnode.jsを勉強する

基本的に何の知識も無い。

Bluemixのアカウントと、Bluemix DevOps Service(ことjazzhub)のアカウントは作り、アカウントの紐付けはしてある状態である。

まず、ローカルに必要そうなもののインストールを確認。node.jsはhomebrewでインストール。

cloudfoundryのcliはhomebrewで入れればよかったのによくわからないままにpkgをダウンロードしていれちゃった。

> uname
Darwin                                                         
> node -v
v6.4.0                                                 
> npm -v
cm3.10.3                                                       
> cf -v
cf version 6.22.2+a95e24c-2016-10-27

この段階で、ボイラープレートから、node.js-cludantDBのアプリケーションを作成してみる。

すると、デプロイのためのコマンドラインツールを入れろと促される。

CFは入れているが、それに加えてBluemixコマンドラインツールを入れろと言われるので、言われるがままに以下から入れる。

http://clis.ng.bluemix.net/ui/home.html

入れたところで、ローカルで稼働させたアプリをコマンドラインでデプロイする方法以外に、jazzhubを使ってデリバリーする方法のガイドがあることを発見した。

  1. To+ get started, on the app's Overview page, click Enable.
  2. Review the default information for the toolchain settings. If needed, update the settings.
  3. In the Web IDE or in your favorite editor, update the code.
  4. Push your changes. The updated app is redeployed to Bluemix.

とガイドされているので、こっちでやってみる。

「概要」タブのDevOpsの「有効化」をクリックする。

すると、「add app」するか「create toolchain from template」と言われるので、後者を選ぶと「Create a Toolchain」というページに行く。

テンプレートを選べと言われるので、「Simple Cloud Foundry toolchain」を選ぶことにする。「Simple Cloud Foundry toolchain with DevOps Insights」とどう違うのか気になるけど。

「Create」を押すと、Configurable Integrationsを選べと言われるので、「Delivery Pipeline」を選ぶ。押すと、「いや、オススメはgithubなんだけど良いの?」と聞かれる(笑)。それでDelivery Pipelineを有効化するのでしばらくお待ちください・・・から先に行かない。
これはダメだ。

「Create」のボタンの下に、jazzhubでどうにかしたい人はこちら的なリンクがあるので、そちらを押してみると、Gitリポジトリが作られた。どこに?

自分のjazzhubにいくと、プロジェクトが勝手に作られて、Delivery Pipelineも出来ている。

ローカルにgit cloneする。使うユーザー名とパスワードは、jazzhubの方じゃなくて、Bluemixの方であることに注意。

持ってきたものをローカルで動かしてみたい。

> node app.js 
module.js:457
    throw err;
    ^

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:455:15)
    at Function.Module._load (module.js:403:25)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
(以下略)

expressがないと言われた。

素直な気持ちでnpm install expressをしてみた。

すると、次々にアレがないコレがないと言われるので、どんどんインストールした。

  • body-parser
  • method-override
  • morgan
  • errorhandler
  • connect-multiparty
  • ejs

すると、以下の様なメッセージがでて、localhost:3000にアクセスすると画面が出るようになった。

> node app.js 
VCAP_SERVICES environment variable not set - data will be unavailable to the UI
Express server listening on port 3000

しかし、画面は出たものの、DBがないから動かそうとしたらエラーになるはず。まあ、そもそもこれがどんなアプリかもわからないんだけども。

ここでエラーメッセージに出ているVCAP_SERVICESはBluemixの.jsランタイムの「環境変数」という設定に書いてあるもの。使用するサービスのクレデンシャル情報が書いてあるようだ。

とりあえず、今日はここまでにする。