BOOTC-RE...-OFFLINE(7)

πŸ“¦
version 1.17.1 Β· 3 versions
, in fedora 43, fedora 44

✨ 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, page BOOTC-RE...-OFFLINE(7), version v1.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