bluebuild
Create bootable images for image-based operating systems
TLDR
Build a recipe
Validate a recipe
Generate a Containerfile
Generate an ISO from a recipe
Display help
SYNOPSIS
bluebuild [options] [build_directory]
PARAMETERS
--help
Display help information and exit.
--version
Show the bluebuild version and exit.
-f, --file
Specify the build configuration file (default: bluebuild.toml).
--image-name
Specify the name of the image to create (overrides the configuration file).
--no-squash
Disable squashing of layers into a single layer. This is useful for debugging, but will result in a much larger image.
--skip-base-check
Disable checking the base image for required tools. This is useful when the base image does not contain rpm or dpkg.
[build_directory]
The directory containing the bluebuild.toml file and any supporting files for the build.
DESCRIPTION
BlueBuild is a tool for building container images using a declarative and reproducible approach. It leverages Buildah for image construction and relies on a configuration file (usually bluebuild.toml) to define the image's layers, dependencies, and customizations. The goal is to provide a more manageable and auditable way to create container images compared to traditional Dockerfiles, particularly for complex setups.
It enables users to define their entire image creation process in a configuration file, version-controlled along with their application code. This leads to greater transparency, easier rollback capabilities, and simplified maintenance. BlueBuild emphasizes layering for efficient image updates and uses user namespaces for improved security during build processes.
It is designed to create OCI images, allowing them to be used in a wide range of scenarios by using standard container runtimes. Bluebuild is particularly useful for building images that contain container tools such as podman, docker, buildah and skopeo. Bluebuild is inspired by the project "universal-blue" which distributes custom linux distributions.
CAVEATS
Bluebuild depends on Buildah and OCI image standards. Ensure that Buildah is installed and configured correctly. The bluebuild.toml configuration file must be valid and well-structured. The rootless mode of Buildah might require specific system configurations or user namespace adjustments.
CONFIGURATION FILE
The bluebuild.toml file is central to Bluebuild's operation. It defines the base image, system packages, files to copy, commands to execute, and other aspects of the image. It uses a TOML (Tom's Obvious, Minimal Language) format.
BUILDAH INTEGRATION
Bluebuild internally uses Buildah to construct the image layers and commit the final image. Buildah is a command-line tool for building OCI images. Bluebuild abstracts away some of the complexities of using Buildah directly.
HISTORY
Bluebuild is a relatively new project focused on improving the container image building experience. It addresses the complexity of Dockerfiles, aiming for greater reproducibility and maintainability. It builds upon existing container tools, such as Buildah, to create images based on declarative configuration files.