Skip to content
This repository has been archived by the owner on May 24, 2024. It is now read-only.

Commit

Permalink
docs: Add a builds.md
Browse files Browse the repository at this point in the history
About time we start this.
  • Loading branch information
cgwalters committed Dec 8, 2023
1 parent e6761c2 commit e654211
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions docs/builds.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
nav_order: 3
---

# Configuring systems via container builds

A key part of the idea of this project is that every tool and technique
one knows for building application container images should apply
to building bootable host systems.

Most configuration for a Linux system boils down to writing a file (`COPY`)
or executing a command (`RUN`).

## Embedding application containers

A common pattern is to add "application" containers that have references
embedded in the bootable host container.

For example, one can use the [podman systemd](https://docs.podman.io/en/latest/markdown/podman-systemd.unit.5.html)
configuration files, embedded via a container build instruction:

```
FROM <base>
COPY foo.container /usr/share/containers/systemd
```

In this model, the application containers will be fetched and run on firstboot.
A key choice is whether to refer to images by digest, or by tag. Referring
to images by digest ensures repeatable deployments, but requires shipping
host OS updates to update the workload containers. Referring to images
by tag allows you to use other tooling to dynamically update the workload
containers.

## Example repositories

The following git repositories have some useful examples:

- https://github.com/coreos/layering-examples
- https://github.com/openshift/rhcos-image-layering-examples/

0 comments on commit e654211

Please sign in to comment.