45 lines
2.9 KiB
Markdown
45 lines
2.9 KiB
Markdown
|
|
# Building
|
|
|
|
Because this project consumes itself, when there was no `base-runner` image, there was no `containerd-runner` image, which makes this project unable to build using GitHub/Gitea workflows. For that reason, there is a separately maintained set of build scripts under `cicd/`. It serves as the original template for the Gitea workflow (`.gitea/workflows/`).
|
|
|
|
## Environment Variables
|
|
|
|
Whether executing the build via `cicd/` shell scripts or through Gitea workflows, there are several variables to consider.
|
|
|
|
### Public
|
|
|
|
These are the variables you are expected to tweak.
|
|
|
|
| Name | Required | Default | Purpose |
|
|
| ---------------------------- |:--------:| ---------------------- | ------- |
|
|
| `CONTAINERD_REGISTRY_HOST` | No | `docker.inteligr8.com` | The containerd registry to publish the built container image. |
|
|
| `CONTAINERD_DEBUG` | No | | Set to any value to enable debug mode. |
|
|
| `DEBIAN_VERSION` | No | `stable-20260824` | The base version of Debian to use. The `slim` variant is automatically selected. |
|
|
|
|
### Private
|
|
|
|
These are the variables you are not expected to tweak.
|
|
|
|
| Name | Required | Default | Purpose |
|
|
| ---------------------------- |:--------:| ---------------------- | ------- |
|
|
| `CONTAINERD_IMAGE_NAMESPACE` | No | `inteligr8/` | A prefix for the containerd image name. |
|
|
| `CONTAINERD_IMAGE_NAME` | No | `base-runner` | The containerd image name. |
|
|
| `CONTAINERD_CMD` | No | `buildah` | The CLI tool to use to build the containerd image name. (e.g. `buildah`, `podman`, or `docker`) |
|
|
| `CONTAINERD_BUILD_FORMAT` | No | `docker` | The containerd build format for the CLI tool to use. (e.g. `oci` or `docker`) |
|
|
| `SKOPEO_OPTS` | No | | Extra options to pass the `skopeo` CLI tool. |
|
|
| `CONTAINERD_CMD_OPTS` | No | | Extra options to pass the containerd CLI build tool. |
|
|
|
|
## Shell Execution
|
|
|
|
The shell script will build the container and name it according to the variables above. By default, the tag will be the short SHA of the Git commit `HEAD` (current). The tag will have the format: `sha1234567`. This means that if you want to rebuild without any source changes, but using an updated Debian version, you should create a new commit. However, it is not actually necessary. However, we are using a specific version for `DEBIAN_VERSION` for the traceability. If we didn't care, we would just use `stable`.
|
|
|
|
## GitHub/Gitea Workflow Execution
|
|
|
|
The workflow definition maps some variables to Inteligr8 variables:
|
|
|
|
`INTELIGR8_REGISTRY_HOST` => `CONTAINERD_REGISTRY_HOST`
|
|
`INTELIGR8_IMAGE_NAMESPACE` => `CONTAINERD_IMAGE_NAMESPACE`
|
|
|
|
Those values are expected to be the same across all projects.
|