LoginSignup
3
2

More than 5 years have passed since last update.

IBM Cloudにアプリケーションをデプロイ

Last updated at Posted at 2018-10-02

しばらくやらないと、手順を忘れちゃうから、そうならないように一応メモしておきました。

事前準備

事前準備として、IBM Cloudへの利用登録、 Cloud Foundry CLIの導入、IBM SDK for Node.jsの導入が必要となります。
(*実は環境により、IBM SDK for Node.jsを導入してアプリを実行すると、よくわからないエラーが起きていたことがあります。個人的には公式の最新版Node.jsの導入をオススメです)
・IBM Cloudへの利用登録(https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/)
・Cloud Foundry CLI 導入(https://github.com/cloudfoundry/cli/releases)
・IBM SDK for Node.jsの導入(https://www.ibm.com/developerworks/web/nodesdk/)
または公式版Node.js(https://nodejs.org/ja/)の導入

manifest.ymlファイルの設定

設定例:

manifest.yml
//アプリに組み込むIBM Cloud上のサービス
declared-services:
  nlc-1:
    label: natural_language_classifier
    plan: standard
  Conversation-1:
    label: conversation
    plan: Lite
  dashDB-1:
    label: dashDB
    plan: Entry
  Discovery-1:
    label: discovery
    plan: Standard

//アプリ設定
applications:
- services:
  - nlc-1
  - Conversation-1
  - dashDB-1
  - Discovery-1
  name: app-name
  host: app-name
  domain: mybluemix.net
  command: node app.js
  path: .
  memory: 512M
//環境設定
env:
  ALLOW_HTTP: '0.'
  ALLOW_IP: '300.'
  IPSECURITY: 'OFF'
  AUTHENTICATION: 'ON'
  IP_AUDIT: 'FAIL'
  AUDIT: 'FAIL'
  DEBUG: '1'
  ADMIN_USER: 'user'
  ADMIN_PASS: 'password'
//NLCを利用する場合は下記設定が必要
  PRECLASSIFY: 'PRECLASSIFY'
  FINALCLASSIFY: 'FINALCLASSIFY'

※ name/hostは同一で、かつ、IBM Cloud上で固有のものになるようにする
※ domainは、リージョンに合わせて入力します。例えば、
 - 米国南部:mybluemix.net
 - 英国:eu-gb.mybluemix.net
 - シドニー:au-syd.mybluemix.net
(今年ドイツや東京も出てきたらしい)

デプロイ

●コマンドラインからCloud Foundry CLI を利用してIBM Cloudに接続

・アプリケーションのファイルを配置したディレクトリーへ移動し、IBM Cloudに接続する
cf api https://api.ng.bluemix.net
・IBM Cloudにログイン
cf login –u [user_name] –p [password]
・アプリケーションをインストールする組織とスペースを選択する

●サービスインスタンス作成

cf create-service [service_name] [plan_type] [instance_name]
もしろんIBM Cloud GUIから直接サービスインスタンスを作成することも可能です

例:Natural Language Classifierのサービスを作成します。
manifest.ymlで設定したサービス名、プラン種類、インスタンス名を代入する
cf create-service natural_language_classifier standard instance_name

サービスを利用しない場合は、この手順をスキップしてください。

●cf pushコマンドによって作業ディレクトリにあるファイルをIBM Cloudへデプロイ

・cf pushコマンドをアプリケーションのファイルを配置したディレクトリーにて実行する
cf push
・デプロイしたアプリケーションの起動が始まり、IBM Cloud上で実行中となればデプロイ完了

補足:ローカル環境でのアプリケーションの実行

VCAP_SERVICES.jsonファイルの取得
・IBM Cloudのアプリケーションのダッシュボードより「ランタイム」を押下
・「環境変数」と表示されている画面の右下にある「エクスポート」を押下
・「[アプリ名]_vcap.json」のファイルが生成されます
・アプリ名部分を削除して「VCAP_SERVICES.json」という名前のファイルとしてアプリケーションのディレクトリに保存する
スクリーンショット 2018-10-02 13.05.20.png

・作業ディレクトリにて環境変数を設定
(※macOSの場合は setコマンドの代わりにexportコマンドを使用する)
set ALLOW_HTTP=1

以上

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2