1
0
mirror of https://github.com/containers/bootc.git synced 2026-02-06 09:45:32 +01:00
Colin Walters 3e6ea489b7 install feature is always on, add install-to-disk
I consider `bootc install to-filesystem` support a key feature of bootc.
In theory today one can still set up a system directly with `ostree`
and we will continue to support that.

But things like logically bound images we do want to be initialized
from the start and that's with `bootc install to-filesystem`.

Maintaining the feature just has a logistical annoyance any
time one touches the install code as we often end up needing
to carefully `#[cfg(feature = "install")]` in many places
in an infectious way.

Also as we head towards enabling factory reset
https://github.com/containers/bootc/issues/404
we really do want some of the install code enabled there.

However, `to-disk` is much more of a "demo". I don't want
bootc to grow too much knowledge around block devices. Complex
setups (LVM, LUKS) etc. are the domain of external installers
and provisioning tools.

So the feature gate is now on that (which is still on by default).

We ended up with more `#[cfg(feature = "install-to-disk")]` than
I'd have liked, but some of that can be fixed subsequently.

Signed-off-by: Colin Walters <walters@verbum.org>
2024-12-20 10:39:43 -05:00
2024-12-13 14:42:38 +08:00
2024-03-06 17:10:43 +08:00
2024-10-31 16:37:37 -04:00
2024-10-15 19:25:22 -04:00
2024-12-20 08:28:39 -05:00
2024-02-08 17:56:47 -05:00
2024-10-31 23:48:29 -04:00
2024-12-02 17:48:40 -05:00
2024-11-19 21:31:30 +00:00
2024-08-19 16:09:42 -04:00
2024-10-23 15:37:45 -04:00
2024-05-17 14:35:13 +03:00

bootc logo

bootc

Transactional, in-place operating system updates using OCI/Docker container images.

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.

The container image includes a Linux kernel (in e.g. /usr/lib/modules), which is used to boot. At runtime on a target system, the base userspace is not itself running in a "container" by default. For example, assuming systemd is in use, systemd acts as pid1 as usual - there's no "outer" process. More about this in the docs; see below.

Status

The CLI and API are considered stable. We will ensure that every existing system can be upgraded in place seamlessly across any future changes.

Documentation

See the project documentation.

Adopters (base and end-user images)

The bootc CLI is just a client system; it is not tied to any particular operating system or Linux distribution. You very likely want to actually start by looking at ADOPTERS.md.

Community discussion

The Github discussion forum is enabled.

This project is also tightly related to the previously mentioned Fedora/CentOS bootc project, and many developers monitor the relevant discussion forums there. In particular there's a Matrix channel and a weekly video call meeting for example: https://docs.fedoraproject.org/en-US/bootc/community/.

Developing bootc

Are you interested in working on bootc? Great! See our CONTRIBUTING.md guide. There is also a list of MAINTAINERS.md.

Description
Boot and upgrade via container images
Readme 22 MiB
Languages
Rust 92.7%
Nushell 3%
Shell 2.2%
Just 0.6%
Dockerfile 0.5%
Other 1%