BOOTC-RE...-OFFLINE(7)
β¨ NAME β¨
bootc-registries-and-offline β accessing registries and disconnected updates π
okay so bestie, this is one of those miscellaneous info pages, and yeah the page header is BOOTC-RE...-OFFLINE(7) (she got truncated, it happens to the best of us) β we're in section 7, the vibes section. let's get into it π«Ά
π DESCRIPTION π
The bootc project uses the containers/image library (the one right here: https://github.com/containers/image) to fetch container images β and it's literally the exact same library podman uses, no cap. Which means it honors almost all the same configuration options in /etc/containers. slay. π
π Insecure registries π
Container clients like podman pull and docker pull have a --tls-verify=false flag, which is their little way of saying "pls don't do the TLS verification, thank you". bootc does not have that option. none. nope. not a thing. π
Instead, you globally configure the option to disable TLS verification when accessing a specific registry β and you do it through the /etc/containers/registries.conf.d configuration mechanism. it's giving "we do it the long way but the correct way", for example:
# /etc/containers/registries.conf.d/local-registry.conf
[[registry]]
location="localhost:5000"
insecure=true
for more (and there is more), see containers-registries.conf at https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md β¨
π Private registries π
It's super common to use a private repository when you're deploying a whole fleet of bootc instances. like, that's just the move. π
In addition to registry configuration, private registries require authentication. You configure that by placing an auth.json file at /etc/ostree/auth.json. that's the spot. π
for more, see auth.json at https://man.archlinux.org/man/containers-auth.json.5 π
π¦ Disconnected and offline updates π¦
It is common β a best practice, even β to maintain systems which default to being disconnected from the public Internet. no outside world, just vibes. πΈ
π Pulling updates from a local mirror π
Everything in the section remapping and mirroring images (link: https://github.com/containers/image/blob/main/docs/containers-registries.conf.5.md#remapping-and-mirroring-registries) applies to bootc as well. all of it. every crumb. β¨
π Performing offline updates via USB π
In a usage scenario where the operating system update is in a fully disconnected environment, and you want to perform updates via e.g. inserting a USB drive β you can absolutely do this π β one can do this by copying the desired OS container image to e.g. an oci directory:
skopeo copy docker://quay.io/exampleos/myos:latest oci:/path/to/filesystem/myos.oci
Then, once the USB device containing the myos.oci OCI directory is mounted on the target, use:
bootc switch --transport oci /var/mnt/usb/myos.oci
The above command is only necessary once, and thereafter it will be idempotent (meaning: run it again as many times as you want, she does not care π§). Then, use bootc upgrade --apply to fetch and apply the update from the USB device.
This process can all be automated by creating systemd units that look for a USB device with a specific label, mount it (optionally with LUKS, for example), and then trigger the bootc upgrade. that's main character energy, honestly. π₯
π SEE ALSO π
β VERSION β
v1.17.1
and that's the whole page bestie, iykyk β much love from the miscellaneous information manual, pageBOOTC-RE...-OFFLINE(7), versionv1.17.1. go read your configs. periodt. π«Άπ
π¦ where this page comes from
- fedora 43: bootc 1.17.1-1.fc43 Β· Apache-2.0 AND BSD-3-Clause AND MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT)
- fedora 44: bootc 1.17.1-1.fc44 Β· Apache-2.0 AND BSD-3-Clause AND MIT AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT)
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms