LinuxCommandLibrary

bluebuild

Create bootable images for image-based operating systems

TLDR

Build a recipe

$ bluebuild build [path/to/recipe.yml]
copy

Validate a recipe
$ bluebuild validate [path/to/recipe.yml]
copy

Generate a Containerfile
$ bluebuild generate --output [Containerfile] [path/to/recipe.yml]
copy

Generate an ISO from a recipe
$ bluebuild generate-iso --output-dir [path/to/output_directory] --iso-name [iso_name.iso] recipe [path/to/recipe.yml]
copy

Display help
$ bluebuild --help
copy

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.

SEE ALSO

buildah(1), podman(1), skopeo(1), docker(1)

Copied to clipboard