What's a buildpack?

The concept of buildpack was introduced by Heroku. It is a simple API to define what needs to be done to generate a self-contained version of an application, ready to be deployed. You can find more about the Buildpack API by following this link.

A buildpack has three parts:

  • a detection step, where the buildpack attempts to find out whether it can process the application (e.g. the Ruby buildpack checks whether a Gemfile exists, among other things).

  • a compilation step, where the buildpack will download dependencies, launch tasks, and generally make everything needed to "compile" the application into a self-contained artefact.

  • a release step, which is used to set environment variables and various other things needed by the application to run.

Officially supported buildpacks

Language URL

Custom buildpacks

One of the benefits of having a well-defined buildpack API is that you can create one yourself, and use it as the source buildpack for your application (see Customizing the build).

For instance, although C++ applications are not yet officially supported, you could create a buildpack that adds the necessary steps to compile the code and declare the relevant process types.