Skip to content

Recipes for building the base images for Heroku's stacks

License

Notifications You must be signed in to change notification settings

heroku/base-images

Repository files navigation

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:

Image Type OS Supported Architectures Default USER Status
heroku/heroku:20 Heroku Run Image Ubuntu 20.04 AMD64 root Deprecated
heroku/heroku:20-build Heroku Build Image Ubuntu 20.04 AMD64 root Deprecated
heroku/heroku:20-cnb CNB Run Image Ubuntu 20.04 AMD64 heroku Deprecated
heroku/heroku:20-cnb-build CNB Build Image Ubuntu 20.04 AMD64 heroku Deprecated
heroku/heroku:22 Heroku Run Image Ubuntu 22.04 AMD64 root Available
heroku/heroku:22-build Heroku Build Image Ubuntu 22.04 AMD64 root Available
heroku/heroku:22-cnb CNB Run Image Ubuntu 22.04 AMD64 heroku Available
heroku/heroku:22-cnb-build CNB Build Image Ubuntu 22.04 AMD64 heroku Available
heroku/heroku:24 Heroku/CNB Run Image Ubuntu 24.04 AMD64 + ARM64 heroku Recommended
heroku/heroku:24-build Heroku/CNB Build Image Ubuntu 24.04 AMD64 + ARM64 heroku Recommended

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.