systemrescue-zfs/docker/build-iso-image.sh

42 lines
1.4 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# Parameters validation
if [ -z "${sysrescuearch}" ] ; then
echo "ERROR: You must define the environment variable 'sysrescuearch' as either 'x86_64' or 'i686' before you run this script"
exit 1
fi
if [ "${sysrescuearch}" != "x86_64" ] && [ "${sysrescuearch}" != "i686" ] ; then
echo "Value '${sysrescuearch}' is invalid for environment variable 'sysrescuearch'. Only 'x86_64' and 'i686' are supported"
exit 1
fi
# Make sure the docker image exists
dockerimg="sysrescuebuildiso-${sysrescuearch}:latest"
if ! docker inspect ${dockerimg} >/dev/null 2>/dev/null ; then
echo "ERROR: You must build the following docker image before you run this script: ${dockerimg}"
exit 1
fi
# Determine the path to the git repository
fullpath="$(realpath $0)"
curdir="$(dirname ${fullpath})"
repodir="$(realpath ${curdir}/..)"
echo "curdir=${curdir}"
echo "repodir=${repodir}"
# Create a tmpfs for storing packages cache in memory
pkgcache="/tmp/pkgcache"
echo "pkgcache=${pkgcache}"
mkdir -p ${pkgcache}
if ! findmnt ${pkgcache} >/dev/null; then
echo "Mounting ${pkgcache} as a tmpfs"
sudo mount -t tmpfs tmpfs -o size=2G ${pkgcache}
fi
# Run the build process in the container
docker run --rm --pids-limit=4096 --user 0:0 --privileged -it --workdir /workspace \
--volume=${repodir}:/workspace \
--volume=${pkgcache}:/var/cache/pacman/pkg \
${dockerimg} setarch ${sysrescuearch} /bin/bash /workspace/build.sh "$@"