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.
See BUILD.md for instructions on how to build the images yourself.