Heroku for everything

Josep Jaume Rey (@josepjaume) - Twitter, GitHub

What happens when you push a Rack/Rails app to Heroku?

What's behind all that logic?

Heroku hides all that from us.

Until now!

Introducing heroku buildpacks

We now have all the flexibility of deploying Heroku apps right at the build phase

It is in the beta program!

Heroku already had support for...

In the short existence of buildpacks, people has added support for:

A short introduction to the buildpack API

Formed by three basic pieces

  1. bin/detect
  2. bin/compile
  3. bin/release

They're all bash scripts!. That means that can be written in any scripting language present on the system - Ruby, Perl, Bash, whatever

1) bin/detect

It takes BUILD_DIR as a single argument and should return an exit code of 0 if the app present at BUILD_DIR can be serviced with this buildpack.

2) bin/compile

Performs all the buildpack transformation. Takes BUILD_DIR (which can be modified) and CACHE_DIR that will be reused between deploys. Any output will be displayed to the user.

2) Interesting parts of bin/compile

Installing plugins

2) Interesting parts of bin/compile

Taken from io buildpack

3) bin/release

Takes BUILD_DIR and returns a YAML formatted hash with three keys:


Heroku buildpacks documentation

What can we do with buildpacks?

Use spacebar or the arrow keys to navigate
See all slides