Skip to content

This is a shim to run old buildpacks as Cloud Native Buildpacks

License

Notifications You must be signed in to change notification settings

heroku/cnb-shim

Repository files navigation

Cloud Native Buildpack Shim

CI

Warning

This project is not actively maintained and does not support modern Buildpack API and lifecycle versions.

Please switch to native CNB implementations rather than using this shim.

See Heroku's natively supported CNB languages or search for community buildpacks.

This is a Cloud Native Buildpack that acts as a shim for classic Heroku Buildpacks.

Usage

This shim can be used with any buildpack in the Heroku Buildpack Registry by specifying a URL in the form:

https://cnb-shim.herokuapp.com/v1/<namespace>/<name>

Example: Elixir

$ pack build elixir-app --buildpack https://cnb-shim.herokuapp.com/v1/hashnuke/elixir --builder heroku/buildpacks:18

For a complete list of available buildpacks run the following command from the Heroku CLI:

$ heroku buildpacks:search

Applying the Shim Manually

To use the shim manually, install the target buildpack:

$ sbin/install "path/to/buildpack.toml" "https://example.com/buildpack.tgz"

Then run this buildpack.

Example: Elixir

To use this shim with the hashnuke/elixir buildpack, install pack CLI and run:

$ cd elixir-cnb

$ curl -L https://github.com/heroku/cnb-shim/releases/download/v0.1/cnb-shim-v0.1.tgz | tar xz

$ cat > buildpack.toml << TOML
api = "0.2"

[buildpack]
id = "hashnuke.elixir"
version = "0.1"
name = "Elixir"

[[stacks]]
id = "heroku-22"
TOML

$ sbin/install buildpack.toml https://buildpack-registry.s3.amazonaws.com/buildpacks/hashnuke/elixir.tgz

$ cd ~/my-elixir-app/

$ pack build elixir-app --builder heroku/buildpacks --buildpack ~/path/to/elixir-cnb

License

MIT