Building for the ARM architecture is now easier than ever! The heroku/builder:24
builder supports both AMD64 and ARM64 architectures, and includes
multi-arch Go, Java, Node.js, PHP, Python, Ruby and Scala buildpacks. You can read more about Heroku’s Cloud Native Buildpacks here.
# clone the repo
git clone https://github.com/buildpacks/samples
If you’re using an ARM64 computer (such as an Apple Silicon Mac, or an AWS Graviton instance), you can build an ARM64 OCI image with pack simply by setting your builder to heroku/builder:24
:
pack build java-maven-sample --path samples/apps/java-maven/ --builder heroku/builder:24
By default, pack
uses the current architecture for multi-arch builders like heroku/builder:24
, so an AMD64 image will be built on AMD64 systems.
If you want to build an ARM64 image from a different host architecture, use the --platform
parameter:
pack build java-maven-sample --path samples/apps/java-maven/ --builder heroku/builder:24 --platform linux/arm64
TIP: If you don’t want to keep specifying a builder every time you build, you can set it as your default builder by running
pack config default-builder <BUILDER>
for examplepack config default-builder heroku/builder:24
docker run --rm -p 8080:8080 java-maven-sample
Congratulations!
The app should now be running and accessible via localhost:8080.