2024-04-25 16:59:41 +02:00
|
|
|
# Fedora bootc base images
|
2023-11-01 16:35:02 +02:00
|
|
|
|
2024-04-25 16:59:41 +02:00
|
|
|
Create and maintain base *bootable* container images from Fedora packages.
|
2023-11-04 09:45:01 -04:00
|
|
|
|
2023-11-07 14:00:41 -05:00
|
|
|
## Motivation
|
2023-11-04 12:57:41 -04:00
|
|
|
|
2024-04-25 16:59:41 +02:00
|
|
|
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.
|
2023-11-01 16:35:02 +02:00
|
|
|
|
2024-09-18 08:47:23 -04:00
|
|
|
## Building images
|
2024-04-25 12:33:06 -04:00
|
|
|
|
2024-09-18 08:47:23 -04:00
|
|
|
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 documentation[5] for more info.
|
2024-04-25 12:33:06 -04:00
|
|
|
|
2025-08-29 09:58:50 -04:00
|
|
|
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 documentation[6].
|
2024-09-18 08:47:23 -04:00
|
|
|
|
|
|
|
|
## 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.
|
2024-04-25 12:33:06 -04:00
|
|
|
|
2025-04-08 17:05:06 -04:00
|
|
|
```bash
|
2024-05-01 16:51:13 -04:00
|
|
|
podman build --security-opt=label=disable --cap-add=all \
|
|
|
|
|
--device /dev/fuse -t localhost/fedora-bootc .
|
2024-04-25 12:33:06 -04:00
|
|
|
```
|
|
|
|
|
|
2025-02-21 14:55:37 -05:00
|
|
|
See the `Containerfile` for more details. This builds the default `standard` image.
|
2024-09-18 08:47:23 -04:00
|
|
|
|
2024-10-23 15:14:06 -04:00
|
|
|
## 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.:
|
|
|
|
|
|
2025-04-08 17:05:06 -04:00
|
|
|
```bash
|
2024-10-23 15:14:06 -04:00
|
|
|
podman build --from quay.io/fedora/fedora:41 ...
|
|
|
|
|
```
|
|
|
|
|
|
2025-08-29 09:58:50 -04:00
|
|
|
## Content sets/tiers
|
2024-04-25 12:33:06 -04:00
|
|
|
|
2025-08-29 09:58:50 -04:00
|
|
|
Documentation above referenced the scratch[6] 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.
|
2024-12-20 15:50:40 -05:00
|
|
|
|
2025-02-21 14:55:37 -05:00
|
|
|
- **standard**: This image is the default, what is published as
|
2025-04-08 17:05:06 -04:00
|
|
|
<https://quay.io/repository/fedora/fedora-bootc>
|
2025-02-20 16:57:08 -05:00
|
|
|
- **minimal**: This content set is more of a convenient centralization point for CI
|
2025-04-08 17:05:06 -04:00
|
|
|
and curation around a package set that is intended as a starting point for
|
2025-02-20 16:57:08 -05:00
|
|
|
a container base image.
|
2025-03-18 09:33:12 -04:00
|
|
|
- **minimal-plus**: This content set is intended to be the shared base used by all image-based
|
2024-12-20 15:50:40 -05:00
|
|
|
Fedora variants (IoT, Atomic Desktops, and CoreOS).
|
2024-09-16 16:33:01 -04:00
|
|
|
|
2025-03-18 09:33:12 -04:00
|
|
|
**standard** inherits from **minimal-plus** and **minimal-plus** in turn inherit from **minimal**.
|
2024-09-16 16:33:01 -04:00
|
|
|
|
2025-03-18 09:33:12 -04:00
|
|
|
All non-trivial changes to **minimal** and **minimal-plus** should be ACKed by at least
|
2024-09-16 16:33:01 -04:00
|
|
|
one stakeholder of each Fedora variant WGs.
|
|
|
|
|
|
2025-04-08 17:03:28 -04:00
|
|
|
### Available Tiers + Versions
|
|
|
|
|
|
|
|
|
|
> **NOTE:** The location and naming of these images is subject to change.
|
|
|
|
|
|
|
|
|
|
| Version | standard | minimal | minimal-plus |
|
|
|
|
|
| ------- | -------- | ------- | ------------ |
|
2026-01-08 13:20:51 +01:00
|
|
|
| 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 |
|
2025-04-08 17:03:28 -04:00
|
|
|
|
2023-11-07 14:00:41 -05:00
|
|
|
## More information
|
2023-11-01 16:35:02 +02:00
|
|
|
|
2024-05-16 11:55:39 -04:00
|
|
|
Documentation: <https://docs.fedoraproject.org/en-US/bootc/>
|
2023-11-23 17:17:02 +02:00
|
|
|
|
|
|
|
|
## Badges
|
|
|
|
|
|
|
|
|
|
| Badge | Description | Service |
|
|
|
|
|
| ----------------------- | -------------------- | ------------ |
|
|
|
|
|
| [![Renovate][1]][2] | Dependencies | Renovate |
|
|
|
|
|
| [![Pre-commit][3]][4] | Static quality gates | pre-commit |
|
|
|
|
|
|
|
|
|
|
[1]: https://img.shields.io/badge/renovate-enabled-brightgreen?logo=renovate
|
|
|
|
|
[2]: https://renovatebot.com
|
|
|
|
|
[3]: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
|
|
|
|
|
[4]: https://pre-commit.com/
|
2024-05-16 11:55:39 -04:00
|
|
|
[5]: https://docs.fedoraproject.org/en-US/bootc/building-containers/
|
2025-08-30 08:35:28 -04:00
|
|
|
[6]: https://docs.fedoraproject.org/en-US/bootc/building-from-scratch/
|