System container and VM image builder for Incus and LXC.
Incus images may also be compatible with Canonical's LXD.
Type | Service | Status |
---|---|---|
CI | GitHub | |
Project status | CII Best Practices |
The following are the command line options of distrobuilder
. You can use distrobuilder
to create container images for both Incus and LXC.
$ distrobuilder
System container and VM image builder for Incus and LXC
Usage:
distrobuilder [command]
Available Commands:
build-dir Build plain rootfs
build-incus Build Incus image from scratch
build-lxc Build LXC image from scratch
help Help about any command
pack-incus Create Incus image from existing rootfs
pack-lxc Create LXC image from existing rootfs
repack-windows Repack Windows ISO with drivers included
Flags:
--cache-dir Cache directory
--cleanup Clean up cache directory (default true)
--debug Enable debug output
--disable-overlay Disable the use of filesystem overlays
-h, --help help for distrobuilder
-o, --options Override options (list of key=value)
-t, --timeout Timeout in seconds
--version Print version number
Use "distrobuilder [command] --help" for more information about a command.
distrobuilder
is available from the Snap Store.
sudo snap install distrobuilder --classic
To compile distrobuilder
from source, first install the Go programming language, and some other dependencies.
-
Debian-based:
sudo apt update sudo apt install -y golang-go debootstrap rsync gpg squashfs-tools git make
-
ArchLinux-based:
sudo pacman -Syu sudo pacman -S go debootstrap rsync gnupg squashfs-tools git make --needed
NOTE: Distrobuilder requires Go 1.20 or higher, if your distribution doesn't have a recent enough version available, get it from upstream.
Second, download the source code of the distrobuilder
repository (this repository).
mkdir -p $HOME/go/src/github.com/lxc/
cd $HOME/go/src/github.com/lxc/
git clone https://github.com/lxc/distrobuilder
Third, enter the directory with the source code of distrobuilder
and run make
to compile the source code. This will generate the executable program distrobuilder
, and it will be located at $HOME/go/bin/distrobuilder
.
cd ./distrobuilder
make
Finally, you can run distrobuilder
as follows.
$HOME/go/bin/distrobuilder
You may also add the directory $HOME/go/bin/
to your $PATH so that you do not need to run the command with the full path.
See How to use distrobuilder
for instructions.