Yes, there are two main benefits: (a) atomic updates that can be rolled back, and (b) Both your OS and the apps / containers that run on the OS uses the same tooling (ie. podman).
Most of the servers I roll-out now are bootc versions and all applications I container-ize. That means that composing both the OS and the apps on the servers all uses same workflow.
Example (toy example) of a simple server:
FROM quay.io/fedora/fedora-bootc:latest
# Install basic server packages
RUN dnf install -y \
cockpit \
firewalld \
openssh-server \
bash-completion \
git \
sysstat \
wget \
&& dnf clean all
RUN useradd -m -G wheel core && \
echo 'core:password123' | chpasswd
RUN systemctl enable sshd firewalld cockpit.socket
CMD ["/sbin/init"]
LABEL containers.bootc=1
LABEL ostree.bootable=1
LABEL bootc.build.iso=1
Then you can build it with something like:
sudo podman build -t "myserver" .
Then you can create your qcow2 image for use in qemu-kvm or even build an installable iso with bootc-image-builder, like:
sudo podman run --rm -it --privileged -v $(pwd)/output:/output \
quay.io/centos-bootc/bootc-image-builder:latest \
--type qcow2 \
myserver
sudo podman run --rm -it --privileged -v $(pwd)/output:/output \
quay.io/centos-bootc/bootc-image-builder:latest \
--type iso \
myserver
Yes, there are two main benefits: (a) atomic updates that can be rolled back, and (b) Both your OS and the apps / containers that run on the OS uses the same tooling (ie. podman).
Most of the servers I roll-out now are bootc versions and all applications I container-ize. That means that composing both the OS and the apps on the servers all uses same workflow.
Example (toy example) of a simple server:
FROM quay.io/fedora/fedora-bootc:latest # Install basic server packages RUN dnf install -y \ cockpit \ firewalld \ openssh-server \ bash-completion \ git \ sysstat \ wget \ && dnf clean all RUN useradd -m -G wheel core && \ echo 'core:password123' | chpasswd RUN systemctl enable sshd firewalld cockpit.socket CMD ["/sbin/init"] LABEL containers.bootc=1 LABEL ostree.bootable=1 LABEL bootc.build.iso=1Then you can build it with something like:
sudo podman build -t "myserver" .Then you can create your qcow2 image for use in qemu-kvm or even build an installable iso with bootc-image-builder, like:
sudo podman run --rm -it --privileged -v $(pwd)/output:/output \ quay.io/centos-bootc/bootc-image-builder:latest \ --type qcow2 \ myserver sudo podman run --rm -it --privileged -v $(pwd)/output:/output \ quay.io/centos-bootc/bootc-image-builder:latest \ --type iso \ myserver