Home

Awesome

Heroku Base Images

CI

This repository holds recipes for building the base images for Heroku stacks. The recipes are also rendered into Docker images that are available on Docker Hub:

ImageTypeOSSupported ArchitecturesDefault USERStatus
heroku/heroku:20Heroku Run ImageUbuntu 20.04AMD64rootDeprecated
heroku/heroku:20-buildHeroku Build ImageUbuntu 20.04AMD64rootDeprecated
heroku/heroku:20-cnbCNB Run ImageUbuntu 20.04AMD64herokuDeprecated
heroku/heroku:20-cnb-buildCNB Build ImageUbuntu 20.04AMD64herokuDeprecated
heroku/heroku:22Heroku Run ImageUbuntu 22.04AMD64rootAvailable
heroku/heroku:22-buildHeroku Build ImageUbuntu 22.04AMD64rootAvailable
heroku/heroku:22-cnbCNB Run ImageUbuntu 22.04AMD64herokuAvailable
heroku/heroku:22-cnb-buildCNB Build ImageUbuntu 22.04AMD64herokuAvailable
heroku/heroku:24Heroku/CNB Run ImageUbuntu 24.04AMD64 + ARM64herokuRecommended
heroku/heroku:24-buildHeroku/CNB Build ImageUbuntu 24.04AMD64 + ARM64herokuRecommended

The build image variants use the run images as their base, but include additional packages needed at build time such as development headers and compilation toolchains.

The CNB image variants contain additional metadata and changes required to make them compatible with Heroku's Cloud Native Buildpacks builder images.

For images where the default USER is heroku, you will need to switch back to the root user when modifying locations other then /home/heroku and /tmp. You can do this by adding USER root to your Dockerfile when building images, or by passing --user root to any docker run invocations.

Learn more

See BUILD.md for instructions on how to build the images yourself.