Buildpacks
Category:
Definition
Buildpacks are tools that automatically detect a project's programming language and dependencies, compile the application, and produce a runnable OCI container image — without requiring a Dockerfile.
Detailed Explanation
Buildpacks were originally created by Heroku in 2011 as the technology behind "git push heroku main" — the ability to deploy any application without a Dockerfile or build configuration. Cloud Native Buildpacks (CNB) is the modern, OCI-compliant standard maintained by the CNCF.
**How buildpacks work:**
1. **Detect phase**: The buildpack inspects your project directory. Each buildpack checks for specific signals: presence of package.json (Node.js), requirements.txt (Python), go.mod (Go), Gemfile (Ruby), etc. 2. **Build phase**: The matching buildpack downloads the appropriate runtime, installs dependencies, compiles the application, and packages it into layers. 3. **Export phase**: The layers are assembled into an OCI image that can be run by any compliant container runtime.
**Pros and cons vs. Dockerfiles:**
| | Buildpacks | Dockerfile | |---|---|---| | Setup required | Zero — auto-detected | Manual authoring | | Flexibility | Limited to supported patterns | Complete control | | Security updates | Base image auto-patched | Manual update | | Build speed | Typically slower | Faster with caching | | Advanced config | Limited | Full control |
**Popular buildpack providers:** - Heroku Buildpacks (original, widely used) - Google Buildpacks (used in Cloud Run) - Paketo Buildpacks (CNCF project, CNB compliant)
How Kubeletto provides Buildpacks
When you deploy a GitHub repository without a Dockerfile, Kubeletto auto-detects your project type and generates an optimized Dockerfile using buildpack patterns. Supported: Node.js (package.json), Python (requirements.txt/pyproject.toml), Go (go.mod), Ruby (Gemfile), and static sites. You can always add a Dockerfile to override auto-detection for full control.
Frequently Asked Questions
Should I use buildpacks or a Dockerfile on Kubeletto?
For standard projects, buildpacks work well and require no setup. For custom build steps, multi-stage builds, or specific base images, a Dockerfile gives you full control. Kubeletto supports both.
Do buildpacks support monorepos?
Buildpack auto-detection works best on single-service repositories. For monorepos, add a Dockerfile at the service level and specify the build context path in your Kubeletto configuration.
How do buildpacks handle security patches?
CNB-compliant buildpacks can rebase images (swap the base OS layer) without a full rebuild when the base image receives a security patch. Kubeletto supports this for buildpack-generated images.
See Buildpacks in action
Deploy your first app on Kubeletto — free during our active beta.