diskimage-builder/elements/debootstrap
Gregory Haynes 45df304d48 Perform package install outside of debootstrap
Debootstrap only supports one apt repository to install packages from.
As a result, we do not consider the updates repo during debootstrap
causing us install a second kernel when we do an apt-get dist-upgrade
during build.

Lets use debootstrap to get us a minimal chroot, then add our repos and
install the correct packages from the start.

We also have to reorder the dpkg root.d scripts which configure apt so
they run before we perform our package installs.

Change-Id: I6a592db6f0a01d3b19d8e0786e63f1315a1ef647
Closes-Bug: #1637516
2016-11-30 15:16:46 +11:00
..
environment.d Set default locale to image in debootstrap element 2016-03-18 10:04:50 +01:00
install.d Export FS_TYPE and remove hardcoded ext4 values 2016-05-19 17:33:36 +10:00
root.d Perform package install outside of debootstrap 2016-11-30 15:16:46 +11:00
element-deps Add cloud-initramfs-growroot for Precise 2016-05-20 14:32:41 +10:00
package-installs.yaml Add cloud-initramfs-growroot for Precise 2016-05-20 14:32:41 +10:00
pkg-map Add cloud-initramfs-growroot for Precise 2016-05-20 14:32:41 +10:00
README.rst Explain difference between two envvars 2016-08-25 10:07:29 +08:00

===========
debootstrap
===========

Base element for creating minimal debian-based images.

This element is incomplete by itself, you'll want to use the debian-minimal
or ubuntu-minimal elements to get an actual base image.

If necessary, a custom apt keyring and debootstrap script can be
supplied to the `debootstrap` command via `DIB_APT_KEYRING` and
`DIB_DEBIAN_DEBOOTSTRAP_SCRIPT` respectively. Both options require the
use of absolute rather than relative paths.

Use of this element will also require the tool 'debootstrap' to be
available on your system. It should be available on Ubuntu, Debian,
and Fedora.

The `DIB_OFFLINE` or more specific `DIB_DEBIAN_USE_DEBOOTSTRAP_CACHE`
variables can be set to prefer the use of a pre-cached root filesystem
tarball. Setting `DIB_OFFLINE` may cause other element to use cached data,
while `DIB_DEBIAN_USE_DEBOOTSTRAP_CACHE` only functions in the debootstrap
element.

The `DIB_DEBOOTSTRAP_EXTRA_ARGS` environment variable may be used to
pass extra arguments to the debootstrap command used to create the
base filesystem image. If --keyring is is used in `DIB_DEBOOTSTRAP_EXTRA_ARGS`,
it will override `DIB_APT_KEYRING` if that is used as well.

The `DIB_DEBOOTSTRAP_CACHE` variable can be used to cache the created root
filesystem. By default this is 0 (disabled) and any other value enables this.
If run in offline mode then the most recently cached rootfs is used instead of
being built.

The `DIB_DEBOOTSTRAP_DEFAULT_LOCALE` environment variable may be used
to configure the default locale of the base image. It defaults to
C.UTF-8.

-------------------
Note on ARM systems
-------------------

Because there is not a one-to-one mapping of `ARCH` to a kernel package, if
you are building an image for ARM on debian, you need to specify which kernel
you want in the environment variable `DIB_ARM_KERNEL`. For instance, if you want
the `linux-image-mx5` package installed, set `DIB_ARM_KERNEL` to `mx5`.