スタックは、特定のオペレーティングシステムをサポートする、あらかじめ構築されたルート・ファイルシステム(rootfs)です。 たとえば、Linuxベースのシステムでは、ルートに/ usrおよび/ binディレクトリが必要です。 スタックは、コンパートメントで実行されているアプリケーションをサポートするビルドパックと連携して動作します。 Diegoアーキテクチャでは、セルVMは複数のスタックをサポートできます。
注:Dockerアプリケーションはスタックを使用しません。
注意事項: この記事は、Cloud Foundry Documentaion Changing Stacks (last updated: October 6, 2016) からの独自の翻訳とコメントです。内容を保証するものではありません。
利用可能なスタック
Linuxのcflinuxfs2スタックは、Ubuntu Trusty 14.04から派生しています。 サポートされているライブラリについては、Githubのスタックページを参照してください。
独自のカスタムスタックを構築することもできます。 手順については、「カスタムスタックの追加」を参照してください。
新しいスタック上のアプリケーションの再開
セキュリティのため、スタックはCVE(Common Vulnerabilities and Exposures)に対処するために定期的な更新を受けます。 Appsは、Cloud Foundryの新しいリリースを通じてこれらのスタック変更を受け取ります。 しかし、あなたのアプリがrootfsで提供されているライブラリに静的にリンクしている場合は、手動で変更を取り戻す必要があるかもしれません。
アプリが静的にリンクしているライブラリを知ることは難しく、使用している言語によって異なります。 1つの例は、RubyまたはPythonバイナリを使用し、C標準ライブラリの一部にリンクするアプリケーションです。 Cライブラリに更新が必要な場合は、アプリケーションを再コンパイルして、次のように再構成する必要があります。
-
cf stacks
コマンドを使用して、展開で使用可能なスタックを一覧表示します。
$ cf stacks
Getting stacks in org MY-ORG / space development as developer@example.com...
OK
name description
cflinuxfs2 Cloud Foundry Linux-based filesystem
- スタックを変更してアプリケーションをリストアするには、
cf push
コマンドを使用します。 たとえば、デフォルトのスタックcflinuxfs2
上でアプリケーションをリストアするには、cf push MY-APP
を実行します。
$ cf push MY-APP
Using stack cflinuxfs2...
OK
Creating app MY-APP in org MY-ORG / space development as developer@example.com...
OK
...
requested state: started
instances: 1/1
usage: 1G x 1 instances
urls: MY-APP.cfapps.io
last uploaded: Wed Apr 8 23:40:57 UTC 2015
state since cpu memory disk
#0 running 2015-04-08 04:41:54 PM 0.0% 57.3M of 1G 128.8M of 1G
別のスタックを指定するには、コマンドに-s STACKNAMEを追加します。
スタックAPI
API情報については、Cloud Foundry APIドキュメントの「Stacks」セクションを確認してください。