このトピックでは、Cloud Foundryでアプリケーションを起動、再起動、再ステージする方法について説明します。
コメント: IBM Bluemix では、Bluemix CLI として提供されています。bx cf としてサブコマンドとして利用します。
注意事項: この記事は、Cloud Foundry Documentaion Starting, Restarting, and Restaging Applications(last updated: November 22, 2016)からの独自の翻訳とコメントです。 内容を保証するものではありません。
アプリケーションの起動
アプリケーションを起動するには、アプリケーションのルートディレクトリから次のコマンドを実行します。
$ cf push YOUR-APP
アプリケーションのデプロイの詳細については、「アプリケーションのデプロイ」を参照してください。
Cloud Foundryは、次の3つのソースのいずれかからアプリケーションの開始コマンドを決定します。
- Cloud Foundry CLI の -cコマンドラインオプション。 次の例を参照してください。
$ cf YOUR-APP -c "node YOUR-APP.js"
-
アプリケーション manifestでは、 次の例を参照してください。
command: node YOUR-APP.js -
特定のタイプのアプリケーションに適した開始コマンドを提供するbuildpackを指定
Cloud Foundryが使用するソースは、以下に説明する要因によって異なります。
Cloud Foundryがデフォルトの開始コマンドをどのように決定するか
初めてアプリケーションをデプロイするとき、cf pushはデフォルトでbuildpack startコマンドを使用します。 その後、cf pushは、前のプッシュに使用された開始コマンドにデフォルト設定されます。
これらのデフォルトを上書きするには、-cオプションまたはマニフェストのコマンド属性を指定します。 コマンドラインとマニフェストの両方で開始コマンドを指定すると、cf pushはマニフェストのコマンドを無視します。
Cloud Foundry がビルドパックの開始コマンドを強制するには
Cloud Foundryが buildpack startコマンドを強制するには、startコマンドをnullに指定します。
null 開始コマンドは、次の2つの方法のいずれかで指定できます。
- cf CLIで-cコマンドラインオプションを使用する:
$ cf push YOUR-APP -c "null"
- アプリケーションのmanifestでコマンド属性を使用する
command: null
これは、コマンドラインまたはmanifestの開始コマンドでデプロイした後に役立ちます。 この時、buildpack startコマンドではなく、指定したコマンドが、デフォルトの開始コマンドになります。buildpack startを使用してデプロイする場合、nullを使用すると簡単に実行できます。
データベースの移行時に開始コマンド
アプリケーションのデプロイメントの一部としてデータベースを移行する場合は、開始コマンドが特別な方法で使用されます。 詳細については、「クラウド・ファウンドリでのデータベースの移行」を参照してください。
アプリケーションを再起動する
アプリケーションを再起動するには、次のコマンドを実行します。
$ cf restart YOUR-APP
アプリケーションを再起動すると、アプリケーションが停止し、すでにコンパイルされたドロップレットでアプリケーションが再起動されます。 dropletは、以下を含む tarball です。
- stack
- buildpack
- application source code
Diegoセルは、コンテナにdropletを展開、コンパイル、実行します。
アプリケーションを再起動して、新しいサービスをアプリケーションにバインドする、またはアプリケーションだけが使用する環境変数を設定するなどのアクションの後に、アプリケーションの環境を更新します。 ただし、ビルドパックに、アプリケーションを加えるために、環境変数が必要となる場合は、変更を有効にするためにアプリケーションを再ステージする必要があります。
アプリケーションを再ステージする
アプリケーションを再ステージするには、次のコマンドを実行します。
$ cf restage YOUR-APP
アプリケーションを再ステージすると、新しいdropletをコンパイルして起動することによって、アプリケーションが停止し、アプリケーションが再開されます。
ビルドパックが使用する環境変数の設定など、ステージングプロセスに影響するように環境を変更した場合は、アプリケーションを停止してください。 ステージングプロセスは環境変数にアクセスできるため、環境はdropletの内容に影響を与える可能性があります。
アプリケーションを再ステージすると、アプリケーションのソースを更新することなく、アプリケーションから新しいdropletがコンパイルされます。 アプリケーションソースを更新する必要がある場合は、上記の手順に従ってアプリケーションを再プッシュします。