README.md: Clarify a few things

- Make very clear that tier-1 is the default image
- Link to our issue tracker for supportable base image customization
- Note use of `--build-arg=MANIFEST`.

etc.

Signed-off-by: Colin Walters <walters@verbum.org>
This commit is contained in:
Colin Walters 2024-09-18 08:47:23 -04:00
parent 9e2e845372
commit e5d5452ace
1 changed files with 20 additions and 10 deletions

View File

@ -9,21 +9,30 @@ been extremely successful. This project aims to apply the same technique for
bootable host systems - using standard OCI/Docker containers as a transport and bootable host systems - using standard OCI/Docker containers as a transport and
delivery format for base operating system updates. delivery format for base operating system updates.
## Building ## Building images
First, the expectation is that most users will want to build *layered* images The current default user experience is to build *layered* images on top of the official
on top of the official base images. See the documentation[5] for more info. binary base images produced and tested by this project. See the documentation[5] for more info.
Building the images in this repo can be done with `podman build` as with any You can build custom base images by forking this repository; however,
other application image (note that building with `docker` is not currently https://gitlab.com/fedora/bootc/tracker/-/issues/32 tracks a more supportable
supported). You need to enable some privileges for technical reasons. mechanism that is not simply forking. For more information see[6].
## 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 \ podman build --security-opt=label=disable --cap-add=all \
--device /dev/fuse -t localhost/fedora-bootc . --device /dev/fuse -t localhost/fedora-bootc .
``` ```
See the `Containerfile` for more details. See the `Containerfile` for more details. This builds the default `tier-1` image.
### Deriving
You are of course also free to fork, customize, and build base images yourself. You are of course also free to fork, customize, and build base images yourself.
See this page[6] of the documentation for more information. See this page[6] of the documentation for more information.
@ -31,16 +40,17 @@ See this page[6] of the documentation for more information.
## Tiers ## Tiers
There are currently 3 tiers: There are currently 3 tiers:
- **tier-1**: This image is the default, what is published as
https://quay.io/repository/fedora/fedora-bootc
- **tier-0**: This image is more of a convenient centralization point for CI - **tier-0**: This image is more of a convenient centralization point for CI
and curation around a package set that we can all agree is the rough minimum and curation around a package set that we can all agree is the rough minimum
necessary for a usable system. It's not meant to be used as is, but layered necessary for a usable system. It's not meant to be used as is, but layered
upon. upon.
- **tier-1**: This image is much larger and notably includes networking and
firmwares. It's a good starting point onto which you can do less
customizations to get what you need.
- **tier-x**: This image is not intended for end-users. It's the shared base - **tier-x**: This image is not intended for end-users. It's the shared base
used by all image-based Fedora variants (IoT, Atomic Desktops, and CoreOS). used by all image-based Fedora variants (IoT, Atomic Desktops, and CoreOS).
Changes to this tier may be done without accounting for external users. Changes to this tier may be done without accounting for external users.
To build this, pass `--build-arg=MANIFEST=fedora-tier-x.yaml` to the build
command above.
Both **tier-1** and **tier-x** inherit from **tier-0**. Both **tier-1** and **tier-x** inherit from **tier-0**.