debian-bootc-base-images/README.md
2025-08-30 12:36:18 -07:00

3.9 KiB

Debian bootc base images

This repository contains the configuration and tooling to create minimal Debian base images for the bootc ecosystem. These images serve as templates that bootc-image-builder can use to create bootable disk images.

Overview

Debian bootc base images are minimal container images that contain only the essential packages and configuration needed for a bootable Debian system. They are designed to work with the bootc ecosystem tools like bootc-image-builder and osbuild.

Architecture

The repository follows the same architecture as Fedora's bootc-base-images:

  • Minimal templates: These are minimal base images, not complete populated systems
  • Component-based: Each image type (minimal, standard, iot) is composed of reusable components
  • OSTree-ready: Images are designed to work with OSTree for atomic updates

Image Types

Minimal (debian-minimal)

  • Essential boot infrastructure
  • Basic system tools
  • OSTree support
  • GRUB bootloader

Standard (debian-standard)

  • Everything from minimal
  • Additional system utilities
  • Network tools
  • Development tools

IoT (debian-iot)

  • Everything from minimal
  • IoT-specific packages
  • Container runtime support
  • Monitoring tools

Building Images

Prerequisites

  • Podman with fuse support
  • Build tools (apt-ostree, selinux-policy-default, python3)

Basic Build

# Build with default apt-cache-ng proxy
./build.sh

# Build without proxy (direct to Debian repositories)
./build.sh ""

# Build with custom proxy
./build.sh "http://your-proxy:3142"

Manual Build

# Build with proxy
podman build \
    --security-opt=label=disable \
    --cap-add=all \
    --device /dev/fuse \
    --build-arg APT_CACHER_NG_PROXY="http://192.168.1.101:3142" \
    -t localhost/debian-bootc:minimal \
    .

# Build without proxy
podman build \
    --security-opt=label=disable \
    --cap-add=all \
    --device /dev/fuse \
    --build-arg APT_CACHER_NG_PROXY="" \
    -t localhost/debian-bootc:minimal \
    .

Apt-Cache-NG Proxy Configuration

The build system supports apt-cache-ng proxy configuration for faster builds and offline development:

With Proxy (Default)

./build.sh "http://192.168.1.101:3142"

Without Proxy

./build.sh ""

Custom Proxy

./build.sh "http://your-cache-server:3142"

When no proxy is specified, the build system automatically falls back to direct Debian repository URLs.

Debian Versions

  • 13 (Trixie): Stable release (default)
  • 14 (Forky): Testing release
  • 00 (Sid): Unstable/rolling release

Repository Structure

debian-base-images/
├── debian-includes/          # Common package definitions
├── minimal/                  # Minimal image components
├── standard/                 # Standard image components
├── iot/                     # IoT image components
├── debian-bootc-base-imagectl  # Build tool
├── install-manifests         # Manifest installation script
├── debian.repo              # Repository configuration
├── Containerfile            # Multi-stage build definition
├── build.sh                 # Build script
├── debian-13.yaml          # Debian 13 (Trixie) manifest
├── debian-14.yaml          # Debian 14 (Forky) manifest
├── debian-00.yaml          # Debian 00 (Sid) manifest
└── debian-bootc-config.json # Bootc configuration (single file)

Integration with bootc-image-builder

These base images are designed to work with bootc-image-builder:

  1. Build a minimal base image using this repository
  2. Push the image to a container registry
  3. Use bootc-image-builder with the image to create bootable disk images

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test with the build script
  5. Submit a pull request

License

This project follows the same license as the Debian project.