Page last updated:
Warning: Pivotal Cloud Foundry (PCF) v2.3 is no longer supported because it has reached the End of General Support (EOGS) phase as defined by the Support Lifecycle Policy. To stay up to date with the latest software and security updates, upgrade to a supported version.
This topic explains how to cgange application stacks. It also provides a description of stacks and lists the supported stacks on Pivotal Application Service (PAS) v2.3.
You can also use the Stack Auditor plugin for the Cloud Foundry Command Line Interface (cf CLI) when changing stacks. See Using the Stack Auditor Plugin.
A stack is a prebuilt root file system (rootfs) that supports a specific operating system. For example, Linux-based systems need
/bin directories at their root. The stack works in tandem with a buildpack to support apps running in compartments. Under Diego architecture, cell VMs can support multiple stacks.
Note: Docker apps do not use stacks.
PAS v2.3 includes support for the following stacks:
- cflinuxfs3: The Linux
cflinuxfs3stack is derived from Ubuntu Bionic 18.04. For more information about supported libraries, see the GitHub stacks page.
- cflinuxfs2: The Linux
cflinuxfs2stack is derived from Ubuntu Trusty 14.04. For more information about supported libraries, see the GitHub stacks page.
Breaking Change: Support for Ubuntu Trusty 14.04 ends in April 2019. Future versions of PAS may remove support for
cflinuxfs2. Push all new apps using
cflinuxfs3and migrate existing apps to
cflinuxfs3as soon as possible. For more information about the Ubuntu support lifecycle, see the Canonical documentation.
For security, stacks receive regular updates to address Common Vulnerabilities and Exposures (CVEs). Apps pick up on these stack changes through new releases of PAS. However, if your app links statically to a library provided in the rootfs, you may have to manually restage it to pick up the changes.
It can be difficult to know what libraries an app statically links to, and it depends on the languages you are using. One example is an app that uses a Ruby or Python binary, and links out to part of the C standard library. If the C library requires an update, you may need to recompile the app and restage it as follows:
cf stacksto list the stacks available in a deployment.
$ cf stacks Getting stacks in org MY-ORG / space development as firstname.lastname@example.org... OK
name description cflinuxfs2 Cloud Foundry Linux-based file system
To change your stack you have to push your app again. Run
cf pushin the app directory. For example, change the stack of your app to
cf push MY-APP -s cflinuxfs3:
$ cf push MY-APP Using stack cflinuxfs2... OK Creating app MY-APP in org MY-ORG / space development as email@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
To specify a different stack, append
-s STACKNAMEto the command.
For API information, see the Stacks section of the Cloud Foundry API Documentation.