Skip to content

Commit

Permalink
docs: Describe how to boot local builds
Browse files Browse the repository at this point in the history
We want to make this use case feel awesome; today it
doesn't for multiple reasons.

We probably want a `bootc status --booted-image` which
would print the digested pull spec to start.

Then one could at least `podman pull $(bootc status --booted-image)`.

But we clearly *also* want to streamline exporting from
the local ostree storage back into a container, which has some
downsides/bugs right now.

Signed-off-by: Colin Walters <walters@verbum.org>
  • Loading branch information
cgwalters committed May 6, 2024
1 parent 189adfe commit c9f835f
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 11 deletions.
22 changes: 11 additions & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions docs/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

- [Upgrade and rollback](upgrades.md)
- [Offline/disconnected updates](offline-updates.md)
- [Booting local builds](booting-local-builds.md)
- [`man bootc`](man/bootc.md)
- [`man bootc status`](man/bootc-status.md)
- [`man bootc upgrade`](man/bootc-upgrade.md)
Expand Down
41 changes: 41 additions & 0 deletions docs/src/booting-local-builds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Booting local builds

In some scenarios, you may want to boot a *locally* built
container image, in order to apply a persistent hotfix
to a specific server, or as part of a development/testing
scenario.

## Building a new local image

At the current time, the bootc host container storage is distinct
from that of the `podman` container runtime storage (default
configuration in `/var/lib/containers`).

It not currently streamlined to export the booted host container
storage into the podman storage.

Hence today, to replicate the exact container image the
host has booted, take the container image referenced
in `bootc status` and turn it into a `podman pull`
invocation.

Next, craft a container build file with your desired changes:
```
FROM <image>
RUN apt|dnf upgrade https://example.com/systemd-hotfix.package
```

## Copying an updated image into the bootc storage

This command is straightforward; we just need to tell bootc
to fetch updates from `containers-storage`, which is the
local "application" container runtime (podman) storage:

```
$ bootc switch --transport containers-storage quay.io/fedora/fedora-bootc:40
```

From there, the new image will be queued for the next boot
and a `reboot` will apply it.

For more on valid transports, see [containers-transports](https://github.com/containers/image/blob/main/docs/containers-transports.5.md).

0 comments on commit c9f835f

Please sign in to comment.