One of the main goals of the bootable containers initiative in Fedora is to have all the image-based Fedora variants share a common base onto which we can maintain CI, develop features, fix bugs, etc... While I believe in the long-term, we should try to have literal derivation from a base image, this is not currently desirable for various reasons. Instead, for now we can share things at the manifest level by having this repo be a submodule in the every variant's repo. Currently, tier-0 is much smaller than it needs to be for sharing purposes. Crucially, it doesn't include NetworkManager. At the same time, tier-1 is much too large as a shared target. As a first step, we should try to match variants where they currently are and not force them to ship many more packages than they currently do. For this purpose, I'm proposing a new tier: tier-x. The "x" stands for "cross-variant". This tier is composed of tier-0 + a set of packages that is currently in common to all the involved variants. The most notable additions are NetworkManager, openssh, and rpm-ostree. The intention then is to have every Fedora variant `include` this tier and have it become the point of collaboration between variants. E.g. new packages/bug fixes/temporary workarounds relevant to all variants likely should land in this tier instead of in the downstreams. CI of course will also be an important discussion point. |
||
|---|---|---|
| tier-0 | ||
| tier-1 | ||
| tier-x | ||
| .gitlab-ci.yml | ||
| .mdl_style.rb | ||
| .mdlrc | ||
| .pre-commit-config.yaml | ||
| COPYING | ||
| Containerfile | ||
| LICENSE | ||
| README.md | ||
| fedora-bootc-config.json | ||
| fedora-bootc.yaml | ||
| fedora-generic.yaml | ||
| fedora-tier-0.yaml | ||
| fedora-tier-x.yaml | ||
| fedora.repo | ||
| renovate.json | ||
README.md
Fedora bootc base images
Create and maintain base bootable container images from Fedora packages.
Motivation
The original Docker container model of using "layers" to model applications has been extremely successful. This project aims to apply the same technique for bootable host systems - using standard OCI/Docker containers as a transport and delivery format for base operating system updates.
Building
First, the expectation is that most users will want to build layered images on top of the official base images. See the documentation5 for more info.
Building the images in this repo can be done with podman build as with any
other application image (note that building with docker is not currently
supported). You need to enable some privileges for technical reasons.
podman build --security-opt=label=disable --cap-add=all \
--device /dev/fuse -t localhost/fedora-bootc .
See the Containerfile for more details.
You are of course also free to fork, customize, and build base images yourself. See this page6 of the documentation for more information.
More information
Documentation: https://docs.fedoraproject.org/en-US/bootc/
Badges
| Badge | Description | Service |
|---|---|---|
| Dependencies | Renovate | |
| Static quality gates | pre-commit |