- Python 45.5%
- Shell 28.8%
- Dockerfile 13.8%
- Just 11.9%
renovate: separate PRs per Fedora release and update type See merge request fedora/bootc/base-images!367 |
||
|---|---|---|
| .tekton | ||
| ci | ||
| fedora-includes | ||
| finalize.d | ||
| iot | ||
| minimal | ||
| minimal-plus | ||
| standard | ||
| tests | ||
| .gitlab-ci.yml | ||
| .mdl_style.rb | ||
| .mdlrc | ||
| .pre-commit-config.yaml | ||
| bootc-base-imagectl | ||
| bootc-base-imagectl.md | ||
| Containerfile | ||
| COPYING | ||
| fedora-41.yaml | ||
| fedora-42.yaml | ||
| fedora-43.yaml | ||
| fedora-44.yaml | ||
| fedora-bootc-config.json | ||
| fedora-bootc.yaml | ||
| fedora-iot.yaml | ||
| fedora-minimal-plus.yaml | ||
| fedora-minimal.yaml | ||
| fedora-rawhide.yaml | ||
| fedora-standard.yaml | ||
| fedora.repo | ||
| install-manifests | ||
| iot.yaml | ||
| LICENSE | ||
| minimal-plus.hidden.yaml | ||
| minimal.yaml | ||
| README.md | ||
| renovate.json | ||
| standard.yaml | ||
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 images
The current default user experience is to build layered images on top of the official binary base images produced and tested by this project. See the documentation5 for more info.
If you want total control over the image, you don't need to fork this repository. Instead, you can use the existing container as a "builder" to make new images. For more information, see the documentation6.
Build process
Building the images in this repo can be done with podman build, but
note the build process uses a special podman-ecosystem specific mechanism
to create fully custom images while inside a Containerfile.
You need to enable some privileges as nested containerization is required.
podman build --security-opt=label=disable --cap-add=all \
--device /dev/fuse -t localhost/fedora-bootc .
See the Containerfile for more details. This builds the default standard image.
Fedora versions
By default, the base images are built for Fedora rawhide. To build against a
different Fedora version, you can override the FROM image used to obtain the
Fedora repos and dnf variables. E.g.:
podman build --from quay.io/fedora/fedora:41 ...
Content sets/tiers
Documentation above referenced the scratch6 flow,
but there is also a minimal-plus that is not exposed as a stable
interface, but may be used by other images in Fedora.
- standard: This image is the default, what is published as https://quay.io/repository/fedora/fedora-bootc
- minimal: This content set is more of a convenient centralization point for CI and curation around a package set that is intended as a starting point for a container base image.
- minimal-plus: This content set is intended to be the shared base used by all image-based Fedora variants (IoT, Atomic Desktops, and CoreOS).
standard inherits from minimal-plus and minimal-plus in turn inherit from minimal.
All non-trivial changes to minimal and minimal-plus should be ACKed by at least one stakeholder of each Fedora variant WGs.
Available Tiers + Versions
NOTE: The location and naming of these images is subject to change.
| Version | standard | minimal | minimal-plus |
|---|---|---|---|
| Rawhide | quay.io/bootc-devel/fedora-bootc-rawhide-standard | quay.io/bootc-devel/fedora-bootc-rawhide-minimal | quay.io/bootc-devel/fedora-bootc-rawhide-minimal-plus |
| Fedora 43 | quay.io/bootc-devel/fedora-bootc-43-standard | quay.io/bootc-devel/fedora-bootc-43-minimal | quay.io/bootc-devel/fedora-bootc-43-minimal-plus |
| Fedora 42 | quay.io/bootc-devel/fedora-bootc-42-standard | quay.io/bootc-devel/fedora-bootc-42-minimal | quay.io/bootc-devel/fedora-bootc-42-minimal-plus |
More information
Documentation: https://docs.fedoraproject.org/en-US/bootc/
Badges
| Badge | Description | Service |
|---|---|---|
| Dependencies | Renovate | |
| Static quality gates | pre-commit |