You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+38-16Lines changed: 38 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,21 +6,27 @@ Welcome to your brand-new Atomic AlmaLinux Respin!
6
6
7
7
### Set basic configuration
8
8
9
-
In the ["Build image"](.github/workflows/build.yml) and ["Build ISOs"](.github/workflows/build-iso.yml) workflows, you'll find a `set-env` job where you can configure several key variables:
9
+
In the ["Build image"](.github/workflows/build.yml) and ["Build ISOs"](.github/workflows/build-iso.yml)
10
+
workflows, you'll find a `set-env` job where you can configure several key variables:
10
11
11
12
-`REGISTRY`: The container registry to push your image to (default: GitHub Container Registry `ghcr.io`).
12
13
-`REGISTRY_USER`: Your username for the registry.
13
14
-`IMAGE_PATH`: The path/namespace for your image.
14
15
-`IMAGE_NAME`: The name of your image.
15
16
-`PLATFORMS`: A quoted, comma-separated list of platforms to build for (e.g., `"amd64,arm64"`).
16
17
17
-
If your registry is not GitHub or you need a specific token, search for `REGISTRY_TOKEN: ${{ secrets.GITHUB_TOKEN }}` in the workflow files and replace it with the appropriate secret.
18
+
If your registry is not GitHub or you need a specific token, search for `REGISTRY_TOKEN: ${{ secrets.GITHUB_TOKEN }}`
19
+
in the workflow files and replace it with the appropriate secret.
18
20
19
21
### Pick a base desktop image
20
22
21
-
By default, this template uses the base image `quay.io/almalinuxorg/atomic-desktop-gnome:10`, maintained by the [AlmaLinux Atomic SIG](https://wiki.almalinux.org/sigs/Atomic.html). If you prefer KDE, you can use `quay.io/almalinuxorg/atomic-desktop-kde:10` instead.
23
+
By default, this template uses the base image `quay.io/almalinuxorg/atomic-desktop-gnome:10`, maintained by the
24
+
[AlmaLinux Atomic SIG](https://wiki.almalinux.org/sigs/Atomic.html). If you prefer KDE, you can use
To switch images, change the `FROM` line in the [Dockerfile](Dockerfile). If your image use a different signing key, download the new Cosign public key and specify its name in the `upstream-public-key` parameter in `.github/workflows/build.yml`, or remove the parameter to disable key verification.
27
+
To switch images, change the `FROM` line in the [Dockerfile](Dockerfile). If your image use a different
28
+
signing key, download the new Cosign public key and specify its name in the `upstream-public-key`
29
+
parameter in `.github/workflows/build.yml`, or remove the parameter to disable key verification.
24
30
25
31
### Set up container signing (Optional, highly recommended)
26
32
@@ -36,8 +42,11 @@ If you'd like to sign your images using Cosign:
36
42
podman run --rm -it -v /tmp:/cosign-keys bitnami/cosign generate-key-pair
37
43
```
38
44
Leave the password blank. The keys will be in `/tmp/cosign.{key,pub}`.
39
-
2. Add `cosign.pub` to the repository as `/cosign.pub`, commit, and push. This file is public and needed for signature verification. **NEVER** commit your `cosign.key` to the repo!!
40
-
3. In GitHub repo settings, go to "Secrets and variables" > "Actions". Create a secret called `SIGNING_SECRET` and paste the contents of `cosign.key`. Store `cosign.key` securely and delete it from `/tmp`. You can also do this via the GitHub CLI:
45
+
2. Add `cosign.pub` to the repository as `/cosign.pub`, commit, and push. This file is public and
46
+
needed for signature verification. **NEVER** commit your `cosign.key` to the repo!!
47
+
3. In GitHub repo settings, go to "Secrets and variables" > "Actions". Create a secret called
48
+
`SIGNING_SECRET` and paste the contents of `cosign.key`. Store `cosign.key` securely and delete
49
+
it from `/tmp`. You can also do this via the GitHub CLI:
41
50
```bash
42
51
gh secret set SIGNING_SECRET < cosign.key
43
52
```
@@ -48,19 +57,24 @@ Now you're ready to make your respin your own!
48
57
49
58
### Adding files
50
59
51
-
Place any files you want to include in your image in [`/files/system/`](files/system/). The directory structure and permissions will be preserved. This is ideal for adding themes, backgrounds, configuration files, etc.
60
+
Place any files you want to include in your image in [`/files/system/`](files/system/). The
61
+
directory structure and permissions will be preserved. This is ideal for adding themes,
62
+
backgrounds, configuration files, etc.
52
63
53
64
### Executing commands
54
65
55
-
Scripts in [`/files/scripts/`](files/scripts/) are run during image creation. The `build.sh` script copies files from `/files/system/` into the image, then runs all scripts in order, and finally runs `cleanup.sh`.
66
+
Scripts in [`/files/scripts/`](files/scripts/) are run during image creation. The `build.sh`
67
+
script copies files from `/files/system/` into the image, then runs all scripts in order,
68
+
and finally runs `cleanup.sh`.
56
69
57
70
- Start by editing [`10-base.sh`](files/scripts/10-base.sh) to suit your needs.
58
71
- Add more scripts as needed, using the naming scheme `XX-whatever.sh` (where `XX` is a number).
59
72
- Do **not** modify `build.sh`, `cleanup.sh`, `90-signing.sh`, or `91-image-info.sh` unless you know what you're doing.
60
73
61
74
### Build your new image
62
75
63
-
After adding your files and scripts, commit your changes. The CI will build a new image for you automatically. You can also build locally:
76
+
After adding your files and scripts, commit your changes. The CI will build a new image
77
+
for you automatically. You can also build locally:
64
78
65
79
```sh
66
80
make image
@@ -78,11 +92,13 @@ The provided `Makefile` includes several useful commands for local development a
78
92
-`make run-qemu-qcow`: Boot the generated QCOW2 disk image in QEMU for testing.
79
93
-`make run-qemu`: Boot the raw disk image in QEMU (after installation).
80
94
81
-
> **Note:** You may need `sudo` privileges and Podman installed. For more details, see the `Makefile`. QEMU is only optionally needed for local testing.
95
+
> **Note:** You may need `sudo` privileges and Podman installed. For more details, see
96
+
> the `Makefile`. QEMU is only optionally needed for local testing.
82
97
83
98
## Using your image with bootc
84
99
85
-
Your respin is designed to work with [bootc](https://github.com/containers/bootc), a tool for managing and updating container-based operating system images. Here are some basics to get you started:
100
+
Your respin is designed to work with [bootc](https://github.com/containers/bootc), a tool for
101
+
managing and updating container-based operating system images. Here are some basics to get you started:
86
102
87
103
### Installing your image
88
104
@@ -94,7 +110,9 @@ Build or download the ISO for your image, boot into it and follow the installati
94
110
> This is entirely unsupported and may not work at all. In fact, it probably doesn't
95
111
> work at all and it's a terrible idea to even try. Don't do this.
96
112
97
-
If you're already running a bootc image and wish to change to this one, you may be able to do this via `bootc switch`. As you won't have the correct signing key or configuration, you'll have to disable it first:
113
+
If you're already running a bootc image and wish to change to this one, you may be able to do
114
+
this via `bootc switch`. As you won't have the correct signing key or configuration, you'll
@@ -116,13 +134,15 @@ this is entirely unsupported!!
116
134
117
135
### Upgrading your system
118
136
119
-
Once installed, your system will automatically check for updates in the background using a systemd unit provided by bootc. You can also manually trigger an upgrade:
137
+
Once installed, your system will automatically check for updates in the background using a
138
+
systemd unit provided by bootc. You can also manually trigger an upgrade:
120
139
121
140
```sh
122
141
sudo bootc upgrade
123
142
```
124
143
125
-
This will pull the latest image and prepare it for the next boot. On reboot, the system will run the new image version.
144
+
This will pull the latest image and prepare it for the next boot. On reboot, the system
145
+
will run the new image version.
126
146
127
147
### Checking status and troubleshooting
128
148
@@ -137,13 +157,15 @@ This will pull the latest image and prepare it for the next boot. On reboot, the
137
157
138
158
## Continuous Integration (CI)
139
159
140
-
This template is set up with GitHub Actions workflows to build, test, and (optionally) sign your images automatically on every push or pull request. See the `.github/workflows/` directory for details.
160
+
This template is set up with GitHub Actions workflows to build, test, and (optionally)
161
+
sign your images automatically on every push or pull request. See the `.github/workflows/`
162
+
directory for details.
141
163
142
164
## Troubleshooting
143
165
144
166
-**Build fails locally:** Ensure you have Podman and QEMU installed, and that you have the necessary permissions (try running with `sudo`).
145
167
-**CI build fails:** Check the Actions tab in GitHub for logs. Make sure your secrets and configuration are correct.
146
-
-**Image doesn't boot in QEMU:** Double-check your custom scripts and added files for errors.
168
+
-**Image doesn't boot in QEMU:** Double-check your custom scripts and added files for errors, check the build logs for errors.
0 commit comments