Platform Glossary

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.