from Hacker News

bootc-image-builder: Build your entire OS from a Containerfile

by twelvenmonkeys on 6/24/25, 3:01 PM with 27 comments

  • by twelvenmonkeys on 6/27/25, 11:42 PM

    We also have a GUI for trying this out!

    https://github.com/podman-desktop/extension-bootc

    We’re also starting to see other projects adopt a “OS as a Container image” such as Bazzite: https://bazzite.gg/ using bootc :)

    Feel free to ask any questions!

  • by rgovostes on 6/28/25, 8:39 AM

    Roman Shtylman has an example of using a Dockerfile to produce a rootfs for the Jetson Nano: https://github.com/defunctzombie/jetson-nano-image-maker (2022)

    I've always been hesitant to use this method over debootstrap: the Ubuntu container images ("FROM ubuntu:20.04") are created from a tarball that Ubuntu's convoluted CI system spits out and I'm not confident I understand if it's somehow suitable only for a container and not for real hardware.

  • by tt726259 on 6/27/25, 11:43 PM

    You can also achieve this with your current system

    > nix-build '<nixpkgs/nixos>' -A vm -I nixpkgs=channel:nixos-25.05 -I nixos-config=./configuration.nix

    I use nixos btw

  • by tmaier on 6/28/25, 7:40 AM

    Universal Blue (Bluefin etc.) has a reusable GitHub template.

    https://github.com/ublue-os/image-template

  • by Kudos on 6/28/25, 8:22 AM

    I've used this to bootstrap bootc-based Fedora on my workstations. I've got a CI job that builds updated container images every night, a simple `rpm-ostree upgrade` pulls in the new image and `systemctl reboot` activates it.

    What I like about this is always having a known working image I can quickly swap to, particularly for the machine with an nvidia card.

  • by nullify88 on 6/28/25, 5:13 AM

    I've been very excited on progress on bootc. I've tried to make my own coreos distro and its quite complicated in comparison.

    I've used this to start from a minimal base and added what I've needed on top. Best of all, updates are delivered via a container registry.

  • by indigodaddy on 6/28/25, 1:32 AM

    Huh, this is kinda wild. So for esxi images, this would seem to beat/potentially be simpler than the traditional Packer + interacting with an ISO on esxi infra, yes?
  • by franga2000 on 6/28/25, 8:30 AM

    I'd love to have something like this for embedded system images, like for Raspberry Pi deployments.
  • by hardwaresofton on 6/28/25, 7:55 AM

    I wonder which gets more actual usage, this project or linuxkit.

    Does anyone have experience worth sharing with both?

  • by westurner on 6/28/25, 1:12 AM

    Does bootc-image-builder build Native Containers?

    Do Native Containers work as VM images that can be stored in an OCI Image/Artifact/Package Registry?

    I've been mentioning Native Containers since I realized that was how bazzite works now.

    Is vagrant necessary anymore if host, vm, and container images can all be signed and stored in an OCI Image store?

    From https://news.ycombinator.com/item?id=44137501 re: Firecracker and Microsandbox VMs :

    > ostree native containers are bootable host images that can also be built and signed with a SLSA provenance attestation; https://coreos.github.io/rpm-ostree/container/

    ublue-os/image-template: https://github.com/ublue-os/image-template :

    > Build your own custom Universal Blue Image

    ublue-os/akmods has nvidia GPU drivers, nvidia-open, zfs: https://github.com/ublue-os/akmods :

    > A caching layer for pre-built Fedora akmod RPMs

    > OCI images providing a set of cached kernel RPMs and extra kernel modules to Universal Blue images. Used for better hardware support and consistent build process.

    nvidia-container-toolkit (CDI) is necessary for --gpus=all to do CUDA and libEGL 3D with podman. Is this also already installed in bazzite?

    ublue-os/toolboxes: "quadlets and systemd service units for management", boxkit : https://github.com/ublue-os/toolboxes#images

    ublue-os/devcontainer .devcontainer/devcontainer.json: https://github.com/ublue-os/devcontainer/blob/main/src/base/...

    It looks like the Just Justfile 40-nvidia.just has moved due to image topology simplification? https://news.ycombinator.com/item?id=39364975 :

    > ublue-os/config//build/ublue-os-just/40-nvidia.just defines the `ujust configure-nvidia` and `ujust toggle-nvk` commands

  • by yjftsjthsd-h on 6/28/25, 12:48 AM

    > A container for deploying bootable container images.

    ...as long as the images are in the Red Hat family (Fedora, CentOS Stream, RHEL).