5 Build Containers

Containers are workloads which container all necessary files to make the workload independend of the running host OS. This includes (but is not limited to) libraries, executables and shared resource files.

5.1 Supported Containers

A container that is providing its own kernel is called virtual machine in this book. Open Build Service (OBS) supports container builds either by supporting the native build format or as side product of a different format. The range is from very simple chroot containers via server format (eg Docker) or desktop format (eg. AppImage or Snap) up to full VM builds (OpenStack, kvm or LiveCD via kiwi).

5.1.1 SimpleImage

SimpleImage is a special format which is using rpm spec file syntax and just packages the resulting install root as tar ball or squashfs image. The format is just using the BuildRequires tags inside of a file called "simpleimage", it supports also rpm macro handling to allow to define exceptions depending on the build environment.

5.1.2 Docker

Docker images are currently only supported via the kiwi tool.

5.1.3 AppImage

The Desktop oriented AppImage format is currently only formated as side effect of an rpm build. Open Build Service (OBS) supports signing and publishing the .AppImage files, the rest is handled via wrapper packages which converts a rpm (or deb package) into an AppImage file. Own build rules can provided via a "Recipe" file, fallback code will be used if no "Recipe" file is available.

5.1.4 Snap

Snap format is supported natively. However, external resources are only supported via source services and therefore not all build types are supported. Snapcraft works also only with a ubuntu based base system (code for supporting rpm distros exists as well but got not merged upstream yet).

5.1.5 Flatpack

Flatpack is currently not supported due to the lacking ability of reproducable builds.

5.1.6 Livebuild

Livebuild is the debian livebuild support for iso images.

5.1.7 Kiwi appliance formats

5.1.8 Kiwi product builds

Print this page