-
Notifications
You must be signed in to change notification settings - Fork 9
buildpacks
When you git push heroku
, Heroku's slug compiler prepares your code for execution by the Heroku manager. At the heart of the slug compiler is a collection of scripts called a buildpack.
Heroku's Cedar stack has no native language or framework support; Ruby, Python, Java, Clojure, Node.js and Scala are all implemented as buildpacks.
Heroku maintains a collection of buildpacks that are available by default to all Heroku apps during slug compilation.
By default, these buildpacks will be searched in order until a match is detected and used to compile your app.
Custom buildpacks can be used to support languages or frameworks that are not convered by Heroku's default buildpacks. For a list of known third-party buildpacks, see Third-Party Buildpacks.
git://repo.git#master
git://repo.git#v1.2.0
You can override the Heroku default buildpacks by specifying a custom buildpack in the BUILDPACK_URL
config var:
$ heroku config:set BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-ruby
You can also specify a buildpack during app creation:
$ heroku create myapp --buildpack https://github.com/heroku/heroku-buildpack-ruby
Buildpack URLs can point to either git repositories or tarballs. Hosting a buildpack on S3 can be a good way to ensure it's highly available.
If you'd like to use a language or framework not yet supported on Heroku you can create a custom buildpack. To get started, see the following articles:
- To learn about the structure of a buildpack, see Buildpack API.
- To handle platform-specific binaries in a buildpack, see Packaging Binary Buildpack Dependencies.
You can use the heroku-buildpacks CLI plugin to publish buildpacks to our catalog.