recipe.yml
A recipe.yml file describes the build process of a custom image. The top-level keys set the metadata and base for the image, and modules are build steps that add things on top of the base.
Reference
Section titled “Reference”name: (required)
Section titled “name: (required)”string
The image name. Used when publishing to GHCR as ghcr.io/user/name.
description: (required)
Section titled “description: (required)”string
The image description. Published to GHCR in the image metadata.
alt-tags[]:
Section titled “alt-tags[]:”array of string
Allows setting custom tags on the recipe’s final image.
Adding tags to this property will override the latest and timestamp tags.
base-image: (required)
Section titled “base-image: (required)”string
The OCI image to base your custom image on. Only atomic Fedora images and those based on them are officially supported. Universal Blue is recommended. A list of Universal Blue’s images can be found on their website BlueBuild-built images can be used as well.
image-version: (required)
Section titled “image-version: (required)”enum with valid values:
-
string -
integer
The tag of the base image to build on.
Used to select a version explicitly (40) or to always use the latest stable version (latest).
A list of all available tags can be viewed by pasting your base-image url into your browser.
blue-build-tag:
Section titled “blue-build-tag:”string
The tag to pull for the bluebuild cli. This is mostly used for trying out specific versions of the cli without compiling it locally.
cosign-version:
Section titled “cosign-version:”string
The version of cosign that will be included in the image.
This will override the default version set by the CLI.
Setting to none will prevent installing cosign altogether.
nushell-version:
Section titled “nushell-version:”string
The version of nushell to include in this image. This will override the default BlueBuild Nushell version. Change only if you need a specific version of Nushell, changing this might break some BlueBuild modules.
platforms[]:
Section titled “platforms[]:”array of enum with valid values:
linux/amd64linux/amd64/v2linux/arm64linux/armlinux/arm/v6linux/arm/v7linux/386linux/loong64linux/mipslinux/mipslelinux/mips64linux/mips64lelinux/ppc64linux/ppc64lelinux/riscv64linux/s390x
A list of platforms that will be built for the image.
stages[]:
Section titled “stages[]:”array of enum with valid values:
-
external -
external
A list of stages that are executed before the build of the final image. This is useful for compiling programs from source without polluting the final bootable image.
modules[]: (required)
Section titled “modules[]: (required)”array of enum with valid values:
-
external -
external
A list of modules that is executed in order. Multiple of the same module can be included.
Each item in this list should have at least a type: or be specified to be included from an external file in the recipes/ directory with from-file:.
labels:
Section titled “labels:”object
A collection of custom labels that will be applied to the image.
Each item should be a key: value pair representing a label name mapping to label value.