podman-container-tools/buildah

A tool that facilitates building OCI images.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 1 hour ago
Added to GitGenius on November 18th, 2024
Created on January 26th, 2017
Open Issues & Pull Requests: 286 (+0)
GitHub issues: Enabled
Number of forks: 926
Total Stargazers: 9,000 (+0)
Total Subscribers: 99 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 17.4 hours
Mean response time: 19.1 days
90th percentile: 35.5 days
Tracked items: 322

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 98% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "kind/feature" is answered fastest, typically in under an hour, while "stale-issue" waits about 26 hours. 34% of tracked open issues have had no activity in three months. Only 4% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 177
New in 7 days: 3
Closed in 7 days: 1
Avg open age: 498 days
Stale 30+ days: 150
Stale 90+ days: 132

Recent activity

Opened in 7 days: 2
Closed in 7 days: 1
Comments in 7 days: 2
Events in 7 days: 9

Top labels

  • stale-issue (170)
  • locked - please file new issue/PR (161)
  • kind/bug (104)
  • jira (25)
  • kind/feature (24)
  • flakes (8)
  • from Podman (3)
  • kind/cleanup (3)

Detailed Description

Buildah is a command-line tool written in Go that specializes in building Open Container Initiative (OCI) container images. The project facilitates the creation of OCI-compliant images through a flexible, lower-level interface that does not require root privileges and operates without a daemon process. The tool replicates all commands found in Dockerfiles, enabling image construction both with and without Dockerfile specifications while maintaining a simple fork-exec model based on a comprehensive Go API that can be vendored into other tools.

The core functionality of Buildah centers on container image manipulation and creation. Users can create working containers from scratch or using existing images as starting points, mount and unmount container root filesystems for direct manipulation, add content to containers via files, URLs, or directories, and commit working containers into new images. The tool supports building images in both OCI image format and traditional Docker image format. Additional capabilities include pulling and pushing images, tagging images, inspecting container and image configurations, listing containers and images, and renaming containers. The command set includes buildah-add, buildah-build, buildah-commit, buildah-config, buildah-containers, buildah-copy, buildah-from, buildah-images, buildah-info, buildah-inspect, buildah-mount, buildah-pull, buildah-push, buildah-rename, buildah-rm, buildah-rmi, buildah-run, buildah-tag, buildah-umount, buildah-unshare, and buildah-version.

Buildah maintains a complementary relationship with Podman, another container management tool. While Podman specializes in maintaining and modifying OCI images and managing long-lived containers in production environments, Buildah focuses exclusively on efficient image creation. Buildah containers are ephemeral, designed specifically for adding content to images, whereas Podman containers follow traditional container semantics. The buildah-run command emulates Dockerfile RUN instructions, while podman-run emulates docker run functionality. Podman can leverage Buildah's Go API for Dockerfile-based image building and can be installed independently.

The repository overlaps in contributors with microsoft-vscode, rust-lang-rust, and microsoft-typescript, suggesting cross-project collaboration among maintainers.

The project is classified across multiple domains including security, containerization, CLI tooling, runtime environments, OCI compliance, image layer manipulation, rootless container support, Dockerfile building, Kubernetes compatibility, storage drivers, and filesystem management. Buildah's design enables integration of scripting languages beyond Dockerfiles into the build process, providing flexibility for complex image construction workflows while maintaining compatibility with standard container ecosystems.