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 [[-o|--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 [[-h|--help]]
copy

SYNOPSIS

bluebuild <COMMAND> [OPTIONS] [DIRECTORY]

PARAMETERS

build
    Build Docker image from Dockerfile.blueos in DIRECTORY (default: .)

--platform PLATFORMS
    Target platforms (e.g., linux/arm64,linux/amd64); auto-detects if omitted

--push
    Push image to registry after build

--tag TAG
    Custom image tag (default: bluerobotics/blueos-app:version-arch)

push
    Push existing local image to registry

--image IMAGE
    Specify image name for push (default: latest built)

login
    Login to container registry

--registry REGISTRY
    Registry URL (default: ghcr.io)

logout
    Logout from registry

--version
    Show bluebuild version

--help
    Show help for command

DESCRIPTION

BlueBuild is a specialized command-line tool developed by Blue Robotics for creating, managing, and deploying Docker images tailored to BlueOS, their Linux-based operating system for marine robotics like ROVs and AUVs. It streamlines the build process by automatically detecting Dockerfile.blueos files, handling multi-architecture builds (e.g., arm64 for Pixhawk autopilots, amd64 for development), resolving dependencies via a central index, and pushing images to container registries.

Key features include:
- One-command builds: Generates optimized images with BlueOS base layers.
- Cross-platform support: Builds for embedded ARM devices and desktop testing.
- Registry integration: Supports public/private registries with authentication.
- Dependency management: Uses a BlueOS package index for consistent environments.

Ideal for developers targeting Blue Robotics hardware, it reduces boilerplate compared to vanilla Docker, ensuring compatibility and reproducibility. Install via pip: pip install bluebuild. Source on GitHub: bluerobotics/bluebuild.

CAVEATS

Requires Docker/Podman installed and running; ARM builds need QEMU emulation on x86 hosts. Not for general Linux use—BlueOS specific. Network required for dependency index and pushes.

INSTALLATION

pip install bluebuild or pipx install bluebuild. Requires Python 3.9+.

EXAMPLE

bluebuild build --platform linux/arm64 --push builds and pushes ARM64 image.

HISTORY

Developed by Blue Robotics starting 2023 for BlueOS 1.0+. Evolved from internal scripts to open-source CLI (v0.1.0 initial release). Active on GitHub with frequent updates for new BlueOS versions and hardware support.

SEE ALSO

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

Copied to clipboard