1#!/bin/bash 2 3# Helper script to build ACRN with docker 4# This also includes building packages required for ACRN build or runtime 5 6VENDOR=${VENDOR:-debian} 7DISTRO=${DISTRO:-stable} 8 9TOPDIR=$(git rev-parse --show-toplevel) 10DOCKER=$(which docker) 11 12if [ -z "${TOPDIR}" ]; then 13 echo "Run $0 from inside git repository!" 14 exit 1 15fi 16 17if [ -z "${DOCKER}" ]; then 18 echo "Cannot find docker binary, please install!" 19 exit 1 20fi 21 22pushd ${TOPDIR} >/dev/null 23 24if [ ! -f debian/docker/Dockerfile ]; then 25 echo "No Dockerfile available!" 26 exit 1 27fi 28 29set -e 30# create docker image for Debian package build 31cp debian/control debian/docker/debian-control-${VENDOR}-${DISTRO} 32${DOCKER} build \ 33 -f debian/docker/Dockerfile \ 34 --build-arg DISTRO=${DISTRO} \ 35 --build-arg VENDOR=${VENDOR} \ 36 -t acrn-pkg-builder:${DISTRO} debian/docker 37rm debian/docker/debian-control-${VENDOR}-${DISTRO} 38 39# build ACRN packages 40${DOCKER} run \ 41 --rm \ 42 -e UID=$(id -u) \ 43 -e GID=$(id -g) \ 44 -v $(pwd):/source --entrypoint /usr/local/bin/debian-pkg-build.sh acrn-pkg-builder:${DISTRO} -F --no-sign --git-export-dir=build/${DISTRO} "$@" 45 46# create local apt repository 47${DOCKER} run \ 48 --rm \ 49 -e UID=$(id -u) \ 50 -e GID=$(id -g) \ 51 -v $(pwd):/source --entrypoint create-apt-repo.sh acrn-pkg-builder:${DISTRO} build/${DISTRO} 52 53popd >/dev/null 54