alpine-chroot-install - bootstrap an Alpine Linux chroot
alpine-chroot-install -d /directory [
options]
This script installs Alpine Linux into a chroot and optionally sets up qemu-user
and binfmt to emulate different architecture (e.g. armhf).
- -a ARCH
- CPU architecture for the chroot. If not set, then it's the
same as the host's architecture. If it's different from the host's
architecture, then it will be emulated using qemu-user. Options: x86_64,
x86, aarch64, armhf, armv7, ppc64le, riscv64, s390x.
- -b ALPINE_BRANCH
- Alpine branch to install (default is latest-stable).
- -d CHROOT_DIR
- Absolute path to the directory where Alpine chroot should
be installed; Debian's version of this script requires giving this
explicitly -- such as -d /alpine
- -i BIND_DIR
- Absolute path to the directory on the host system that
should be mounted on the same path inside the chroot (default is PWD, if
it's under /home, or none).
- -k CHROOT_KEEP_VARS
- Names of the environment variables to pass from the host
environment into chroot by the enter-chroot script. Name may be an
extended regular expression. Default: ARCH CI QEMU_EMULATOR
TRAVIS_.*.
- -m ALPINE_MIRROR
- URI of the Aports mirror to fetch packages from (default is
http://dl-cdn.alpinelinux.org/alpine).
- -p ALPINE_PACKAGES
- Alpine packages to install into the chroot (default is
build-base ca-certificates ssl_client).
- -r EXTRA_REPOS
- Alpine repositories to be added to /etc/apk/repositories
(main and community from $ALPINE_MIRROR are always added).
- -t TEMP_DIR
- Absolute path to the directory where to store temporary
files (defaults to `mktemp -d`).
- -h
- Show this help message and exit.
- -v
- Print version and exit.
- APK_TOOLS_URI
- URL of apk.static to download. Default is x86_64 binary
from https://gitlab.alpinelinux.org/alpine/apk-tools/-/packages.
- APK_TOOLS_SHA256
- SHA-256 checksum of $APK_TOOLS_URI.
Each option can be also provided by environment variable. If both option and
variable is specified and the option accepts only one argument, then the
option takes precedence.
This tool also creates script "enter-chroot" inside the chroot
directory, that may be used to enter the chroot environment. That script do
the following:
- 1. saves environment variables specified by
$CHROOT_KEEP_VARS and PWD,
2. chroots into $CHROOT_DIR,
3. starts clean environment using "env -i",
4. switches user and simulates full login using "su -l",
5. loads saved environment variables and changes directory to saved PWD,
6. executes specified command or "sh" if not provided.
Example:
sudo alpine-chroot-install -d /alpine -p build-base -p cmake
/alpine/enter-chroot -u $USER ./build