Buildpacks are bundles of detection and configuration scripts that set up containers to run applications. For a brief introduction to writing buildpacks, see Heroku Buildpacks.


In Helion Stackato 3.x (Cloud Foundry v2 API), application deployment is done primarily using buildpacks. Using a buildpack is the recommended method of deploying applications to Helion Stackato, replacing built-in frameworks used in previous versions.

The syntax for specifying the buildpack has changed. Instead of using a BUILDPACK_URL environment variable, set the buildpack's Git URL in a buildpack: key at the top level of the manifest.yml file.

Understanding Buildpack Types

Built-In Buildpacks

The following set of buildpacks is bundled with Helion Stackato by default:

To match the code of your application, Helion Stackato cycles through the detect scripts of the build-in buildpacks prior to staging. Most applications that use these buildpacks do not require any Helion Stackato-specific configuration.

Legacy Buildpacks

The legacy buildpack is a special meta-buildpack used for deploying applications configured for Helion Stackato 2.x (Cloud Foundry v1 API) without extensive reconfiguration. This buildpack updates the versions of all frameworks available in previous versions of Helion Stackato.

To use the Legacy buildpack, specify the framework: name: key for your application (for example, php, play, rails3, sinatra, java_web, java_ee, and so on). You can also set an optional runtime:. For example:

name: bottle-py3
  name: python
  runtime: python32


While using the Legacy Buildpack, you can update configuration-defined environment variable values only by re-pushing the application with new settings. For more information, see Legacy Buildpack and Environment Variables.

Custom Buildpacks

You can specify a custom buildpack by setting the top-level buildpack: key in the manifest.yml file to the URL of the buildpack Git repository. For example:

name: myrubyapp
memory: 256MB

To specify a specific branch or tag, add it to the end of the URL. For example:



To find buildpacks that may work with your application's language or framework, search GitHub for the term buildpack.

Sample Third-Party Buildpacks


Not all third-party buildpacks work with Helion Stackato due to environmental differences (for example, relying on certain executables or libraries in specific locations in the container). Examine and test all third-party buildpacks prior to using them in production deployments.

Configuring the Procfile for an Application

Buildpacks usually contain a default_process_type setting that includes the command that starts the application process. If your application requires a custom command to start the process, create a Procfile in the root directory of your application.

The Procfile must contain a single line with the definition of the web: process for the application. For example:

web: bundle exec rails server -p $PORT

Unlike Heroku, Helion Stackato does not support multiple process types in the Procfile. To launch a worker process, create a separate application without a URL (with an empty url: [] key in manifest.yml).

To Configure the Sample Java Buildpack

  1. Define the buildpack URL in your manifest.yml file, for example:

    name: pet-clinic
    memory: 512M
      ${name}-db: mysql
  2. Create a Procfile and declare the parameters for your application's execution, for example:

    web: java $JAVA_OPTS -jar target/dependency/jetty-runner.jar --port $PORT target/*.war
  3. Add the jetty dependency to your pom.xml file: