buildkit VS buildah

Compare buildkit vs buildah and see what are their differences.

buildkit

concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit (by moby)

buildah

A tool that facilitates building OCI images. (by podman-container-tools)
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
buildkit buildah
66 34
10,050 8,869
1.2% 1.2%
9.7 9.6
2 days ago 5 days ago
Go Go
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

buildkit

Posts with mentions or reviews of buildkit. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2025-12-24.
  • A faster path to container images in Bazel
    5 projects | news.ycombinator.com | 24 Dec 2025
  • Docker Image Layers – What They Are & How They Work
    2 projects | dev.to | 19 Sep 2025
    The IDs associated with each layer were displayed in the build output. Unfortunately, the switch to BuildKit in recent Docker versions prevents the convenient use of intermediate layers because they're no longer stored after the build completes.
  • Why We’re Moving on From Nix
    5 projects | dev.to | 25 Aug 2025
    Better caching: Railpack interfaces directly with BuildKit to control the layers and filesystem, resulting in more cache hits (with sharable caches across environments)
  • Kubernetes Without Docker: Why Container Runtimes Are Changing the Game in 2025
    7 projects | dev.to | 23 Apr 2025
    BuildKit Faster Docker Builds Build speed + cache control = win.
  • Build a Container Image from Scratch
    4 projects | news.ycombinator.com | 20 Mar 2025
    Windows is is very similar, the differences are two the layer tarballs.

    The file system appears in a Files sub-directory as there is a Hives sub-directory for containing the Windows Registry.

    The other difference is there are two extra PAX headers within the tarball, MSWINDOWS.fileattr which is "32" for a regular file, and "16" for a directory and MSWINDOWS.rawsd which is a special encoding of the security descriptor, which you can think of it as the owner, group and permissions associated with the file (which their standard values can be seen from buildkit here: https://github.com/moby/buildkit/blob/22156ab20bcaea1a1466d2...)

    I haven't looked into how to handle the Windows Registry aspect as in my exploration I was focused on simply adding a pre-built executable so I didn't need any registry entries created.

    The other fun gotcha is to ensure the ENV section contain PATH set to c:\\Windows\\System32;c:\\Windows otherwise you would be unlikely to be able to run any Windows executable.

  • Docker BuildKit: Accelerating Docker Builds with Next-Generation Technology
    1 project | dev.to | 17 Mar 2025
    BuildKit GitHub Repository
  • Beyond Docker - A DevOps Engineer's Guide to Container Alternatives
    4 projects | dev.to | 26 Dec 2024
    I remember when container builds were slow and not really efficient, and were usually a bottleneck of our CI/CD pipelines. That is until I discovered BuildKit and my life changed. BuildKit is the next-generation builder engine for Docker, but it can also be used independently.
  • Day 23: Docker Resources
    4 projects | dev.to | 23 Dec 2024
    BuildKit is the engine behind Docker's build system. It's a fascinating look into how Docker images are constructed, with features like:
  • 1MinDocker #8 - Advanced concepts for buildx
    2 projects | dev.to | 1 Dec 2024
    create should be provided with a daemon configuration file through the --buildkitd-config flag (if not, it defaults to the buildkitd.default.toml file contained in the config directory of buildx). You can find an example of a complete configuration file in buildkit official documentation on GitHub.
  • Speed up Kamal deploys in GitHub Actions
    6 projects | dev.to | 13 Nov 2024
    By default, Kamal uses the docker-container driver to build images which, in turn, uses the BuildKit toolkit internally. While Kamal sets up registry caching correctly, caching still fails in the end because the BuildKit process is isolated from our GitHub Action runtime process. To connect the two, we need to expose the GitHub runtime to the workflow. Luckily, there is a GitHub Action ready just for this so all that is needed is adding the action to the workflow file. We put it right after setting up Docker Buildx:

buildah

Posts with mentions or reviews of buildah. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2026-04-23.
  • Arch Linux Now Has a Bit-for-Bit Reproducible Docker Image
    6 projects | news.ycombinator.com | 23 Apr 2026
    For the package management, it depends on the package manager, but most have some mechanism for installing into a root other than the currently running system.

    Even without explicit support in the pacakage manager, you could also roll your own solution by running the package manager in a chroot environment, which would then need to be seeded with the package manager's own dependencies, of course (and use user-mode qemu to run non-native executables in the case of cross-architecture builds).

    Whether this yields a minimal container when pointed at a repository intended to be used to deploy a full OS is another question, but using a package manager to build a root filesystem offline isn't hard to pull off.

    As for how to do this in the context of building an OCI container, tools like Buildah[1] exist to support container workflows beyond the conventional Dockerfile approach, providing easy-to-use command line tools to create containers, work with layers, mount and unmount container filesystems, etc.

    [1] https://github.com/containers/buildah/blob/main/README.md

  • Red Hat takes on Docker Desktop with its enterprise Podman Desktop build
    7 projects | news.ycombinator.com | 25 Feb 2026
  • Using Podman, Compose and BuildKit
    8 projects | news.ycombinator.com | 21 Aug 2025
    Yes, since 2021 they also support the same syntax natively: https://github.com/containers/buildah/pull/3133
  • A Safer Container Runtime
    2 projects | dev.to | 31 Mar 2025
    Buildah is another tool that can build OCI container images without requiring root privileges:
  • I don't like Docker or Podman
    2 projects | news.ycombinator.com | 26 Jan 2025
    I avoid dockerfiles and prefer using buildah for building containers. Since they're all using the same specification, it doesn't matter what runtime is then used to run them: it can be docker, podman, k8s, whatever.

    Here's the official example of building a lighttpd container:

    https://github.com/containers/buildah/blob/92015b7f4301d7eb8...

    You can eschew bash and call these commands however you want — from a python script, or Go, or even assembly.

  • Using S3 as a Container Registry
    8 projects | news.ycombinator.com | 12 Jul 2024
    If $PROGRAMMING_LANGUAGE = go, you might be looking for https://github.com/containers/storage which can create layers, images, and so on. I think `Store` is the main entry: https://pkg.go.dev/github.com/containers/storage#Store

    Buildah uses it: https://github.com/containers/buildah/blob/main/go.mod#L27C2...

  • Podman Desktop 1.11: Light mode and new Kubernetes features
    7 projects | news.ycombinator.com | 26 Jun 2024
    Like wayland, podman was one of those things that took a lot of "I'll give it another shot? Nope, not ready" before I could switch.

    Lately the only real incompatibility I run in to with podman is that the handling of `RUN --mount=type=secret` in a Containerfile/Dockerfile is a bit broken (https://github.com/containers/buildah/issues/5282).

  • Using ARG in a Dockerfile – beware the gotcha
    3 projects | news.ycombinator.com | 14 May 2024
    I wish we would rather get rid of Dockerfile in favor of something like buildah does:

    https://github.com/containers/buildah/blob/main/examples/lig...

    Since Dockerfile is a rather limited and (IMHO) poorly executed re-implementation of a shell script, why not rather use shell directly? Not even bash with coreutils is necessary: even posix sh with busybox can do far more than Dockerfile, and you can use something else (like Python) and take it very far indeed.

  • A gopher’s journey to the center of container images
    5 projects | dev.to | 23 Nov 2023
    For the task of building the graph image, my first idea was to rely on buildah. In fact, our design was already heavily relying on containers/image for all things regarding copying images from one registry to the other, or from one registry to an archive. The obvious choice was to use the same suite of modules in order to keep dependencies to a minimum.
  • Podman Desktop for Java Development
    1 project | /r/java | 8 May 2023
    I appreciate that podman can run daemonless, but I've gotten tired of waiting for them to implement heredoc support and have continued to use docker.

What are some alternatives?

When comparing buildkit and buildah you can also consider the following projects:

kaniko - Build Container Images In Kubernetes

jib - 🏗 Build container images for your Java applications.

dinker - Dinker, dinky Docker images

dive - A tool for exploring each layer in a docker image

rules_docker - Rules for building and handling Docker images with Bazel

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured