-
Notifications
You must be signed in to change notification settings - Fork 204
Many questions by a newbie. #2016
-
Hello, I have always liked having a central way of handling the setup of my computers. It started off with a dotfiles repository with lots of scripts. However, after discovering ublue and fedora's atomic images I saw a new way of doing things.
I really like the idea of having all my system level modifications be done at one time then propagated across my different machines. It started as three separate images that all came from ublue's container templates, however, I have recently made my own, single repository for all my different images. Most of my info came from the fedora docs on bootc.
However, I have gotten a bit lost and have gathered a lot of questions.
- Am I using this project as intended by making my own desktop images or should I just go back to scripts?
- What is zstd:chunked and should I used it? I've seen some issues that it's unsupported by bootc, but that it also drastically shortens update times.
- What is "rechunking" and how should I use it? I've seen projects such as rechunk and chunkah, however, I am unsure how reliable or good they are. They're also not very documented.
- Should I use many smaller instructions in my Containerfile or should I do everything in a single "install.sh" script?
- I have seen talk about the relationship between bootc and ostree. Should I utilize building containers or should I change my setup to use ostree directly instead?
I still feel like I am very new to this whole ecosystem. I am glad for any answers I may get.
Beta Was this translation helpful? Give feedback.
All reactions
Replies: 1 comment 6 replies
-
Thanks for the interest!
Am I using this project as intended by making my own desktop images or should I just go back to scripts?
Yep, that's what I do. I start with FROM quay.io/fedora/fedora-bootc:43 then add my changes on top of it in a Containerfile.
What is "rechunking" and how should I use it? I've seen projects such as rechunk and chunkah, however, I am unsure how reliable or good they are. They're also not very documented.
Container images consist of a number of layers. Rechunking is a method to optimize these layers to optimize bandwidth usage during updates. IMO, it's not especially useful for desktop installations with high bandwidth and/or frequent changes to layer contents. It's more useful for servers in low bandwidth environments.
Should I use many smaller instructions in my Containerfile or should I do everything in a single "install.sh" script?
Whether you want to use an external install.sh is preference. Be sure not to use a ton of RUN <cmd> statements as each time you invoke RUN, a new layer is created in the image. This might cause you to hit the layer limit. Ideally, less frequently updated files will be in a separate layer.
I have seen talk about the relationship between bootc and ostree. Should I utilize building containers or should I change my setup to use ostree directly instead?
Use container images with bootc. Currently, bootc uses ostree as a "backend". That's mostly an implementation detail. There is lots of work being done to switch from ostree to composefs as a backend. As an end user, the goal would be for you to not need to worry too much about the backend though.
Beta Was this translation helpful? Give feedback.
All reactions
-
Hold on, does this mean that the bootc container that I can download from quay.io is actually a "distribution image with kernel"?
Yes, it is a pre-built base image that you can use directly or build on top of. For more advanced scenarios, you can build your own base image, see https://docs.fedoraproject.org/en-US/bootc/building-from-scratch/#_example_generating_a_from_scratch_base_image_with_exact_version_control
Beta Was this translation helpful? Give feedback.
All reactions
-
Thank you. I would still like to get the download size down a bit as my laptop is very weak and a single file change often results in a 3GB download. Is zstd:chunked actually supported or should I just tank it?
Beta Was this translation helpful? Give feedback.
All reactions
-
It is supported. Have a look at https://github.com/coreos/chunkah which should help you be able to get your updates down to a managable size
Beta Was this translation helpful? Give feedback.
All reactions
-
It is supported. Have a look at https://github.com/coreos/chunkah which should help you be able to get your updates down to a managable size
The issue I had with chunkah was that it says both that it might work with bootc images, but not with images built with ostree: https://github.com/coreos/chunkah?tab=readme-ov-file#compatibility-with-bootable-bootc-images
I don't know if the base images I use are compatible. Should I just try to use chunkah, and if so, how do I know if the process fails?
Beta Was this translation helpful? Give feedback.
All reactions
-
The issue I had with chunkah was that it says both that it might work with bootc images, but not with images built with ostree: coreos/chunkah#compatibility-with-bootable-bootc-images
I added more guidance on this in that section if you want to read it again. :)
"OSTree-based" basically means there's an embedded OSTree repo at /sysroot/ostree in the image and OCI metadata like labels attached to the imagee which bootc looks for. So to use it with chunkah, you basically have to strip those OSTree-specific things essentially converting it into a plain bootc image.
Beta Was this translation helpful? Give feedback.
All reactions
-
❤️ 1