diskimage-builder/elements/debootstrap
Antoine Musso 2209d34372 debootstrap: avoid duplicate network configuration
On Debian network configuration can be done via /etc/network/interfaces.
It can accept a statement to load additional files, which varied in
history:

Wheezy only supports 'source' (see b822581)
Jessie supports 'source-directory' and comes with the statement by
default.

However since 754dd05 we inconditionally inject 'source', thus on Jessie
the configuration ends up with:

 source-directory /etc/network/interfaces.d/*
 source /etc/network/interfaces.d/*

When networking is started, 'ifup -a' parses the list of interfaces
twice. When configured with dhcp, that causes two dhclient to spawn
which might conflict with each other.

Inject the source statement only if there is neither a source or
source-directory with the same path.

Change-Id: Iefa9c9584f676e50481c621b4111eded3125a50b
2016-12-21 10:23:32 +01:00
..
environment.d Set default locale to image in debootstrap element 2016-03-18 10:04:50 +01:00
install.d debootstrap: avoid duplicate network configuration 2016-12-21 10:23:32 +01: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`.