bootc-dev/bootc

Boot and upgrade via container images

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 36 minutes ago
Added to GitGenius on November 18th, 2024
Created on November 30th, 2022
Open Issues & Pull Requests: 337 (+0)
GitHub issues: Enabled
Number of forks: 230
Total Stargazers: 2,273 (+0)
Total Subscribers: 29 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

Bootc is a Rust-based project that enables transactional, in-place operating system updates using OCI and Docker container images as the transport and delivery format for base operating system updates. Rather than treating containers solely as an application deployment mechanism, bootc applies the layered container model to bootable host systems themselves, allowing Linux distributions and system operators to package complete operating system images including kernels and userspace components in standard container formats.

The project's core innovation lies in its approach to system updates. A bootc container image includes a Linux kernel, typically stored in locations like /usr/lib/modules, which is used to boot the target system. Importantly, the base userspace does not run inside a container by default at runtime. Instead, standard init systems like systemd operate as pid1 in the traditional manner, with no outer container process wrapping the system. This design preserves conventional system architecture while leveraging container technology for distribution and versioning.

Bootc is classified across numerous system-level categories including booting, boot loaders, system startup, Linux initialization, OCI compliance, kernel modules, initramfs handling, and systemd integration. The project also intersects with container runtimes including runc, containerd, podman, and cri-o, reflecting its position at the intersection of container technology and operating system infrastructure. Its domain classification includes microservices and Kubernetes contexts, indicating adoption patterns beyond traditional server deployments.

The project maintains a stable CLI and API, with a commitment to seamless in-place upgrades across future versions. Version numbering follows semantic versioning standards beginning with version 1.2.0. The project is not distributed as a library on crates.io but maintains version discipline nonetheless. Bootc itself is distribution-agnostic, functioning as a client-side tool that works across different Linux distributions and operating systems. The project directs users to an ADOPTERS.md file for information about base images and end-user implementations.

Community engagement is substantial and well-organized.

Bootc operates as a Cloud Native Computing Foundation Sandbox project and adheres to the CNCF Community Code of Conduct. The project hosts recurring community meetings on CNCF Zoom each Friday at 15:30 UTC, maintains a GitHub discussion forum for asynchronous communication, and operates a live chat channel on CNCF Slack. The project is tightly related to the Fedora and CentOS bootc initiatives, with shared community spaces including Matrix channels and weekly video calls. Comprehensive governance, contribution, and maintainer documentation is available in the repository.