Buildpack Stacks
A buildpack stack defines the set of buildpacks used to build your application.
Deploio supports two stacks: heroku (the default) and paketo.
Heroku Stack (Default)
The heroku stack is the default and uses exclusively unchanged Heroku Cloud Native Buildpacks. This ensures strict compatibility with standard Heroku CNB behavior and provides frequently updated runtime versions.
Paketo Stack
The paketo stack uses a combination of Paketo buildpacks, nine-managed buildpacks, and Heroku Cloud Native Buildpacks for some languages. This stack includes custom buildpacks that provide automatic language detection, including for static sites.
Static Sites on the Heroku Stack
Automatic language detection for static sites is not available on the heroku
stack, because that detection is handled by a nine-managed buildpack. When
deploying a static site with the heroku stack using nctl, you must
explicitly set the language:
nctl create application my-static-site \
--buildpack-stack=heroku \
--language=static \
--git-url=https://github.com/your-org/your-repo
Choosing a Stack
The heroku stack is a good default for most applications. Consider switching to the paketo stack if:
- You need automatic language detection for static sites, which is provided by a nine-managed buildpack not available in the heroku stack.
- You need the specific features provided by Paketo buildpacks.
Configuring the Buildpack Stack
Use the --buildpack-stack flag when creating or updating an application:
# Create an application using the paketo stack
nctl create application my-app \
--buildpack-stack=paketo \
--git-url=https://github.com/your-org/your-repo
# Switch an existing application to the paketo stack
nctl update application my-app --buildpack-stack=paketo
# Switch back to the default heroku stack
nctl update application my-app --buildpack-stack=heroku