new feature specify dns; check signature after signing
This commit is contained in:
@@ -10,6 +10,7 @@ mode="deb"
|
||||
img="mwaeckerlin/ubuntu:latest"
|
||||
repos=()
|
||||
keys=()
|
||||
dns=()
|
||||
envs=("-e LANG=${LANG}" "-e HOME=${HOME}" "-e TERM=xterm" "-e DEBIAN_FRONTEND=noninteractive" "-e DEBCONF_NONINTERACTIVE_SEEN=true")
|
||||
dirs=("-v $(pwd):/workdir" "-v ${HOME}/.gnupg:${HOME}/.gnupg")
|
||||
packages=()
|
||||
@@ -41,6 +42,7 @@ while test $# -gt 0; do
|
||||
echo " -f, --flag <flag> add flag to ./bootstrap.sh or ./configure"
|
||||
echo " -r, --repo <url> add given apt repository"
|
||||
echo " -k, --key <url> add public key from url"
|
||||
echo " -n, --dns <ip> add ip as dns server"
|
||||
echo " -e, --env <var>=<val> set environment variable in docker"
|
||||
echo " -d, --dir <dir> access given directory read only"
|
||||
echo " -p, --package <pkg> install extra debian packages"
|
||||
@@ -128,6 +130,9 @@ while test $# -gt 0; do
|
||||
(-e|--env) shift;
|
||||
envs+=("-e $1")
|
||||
;;
|
||||
(-n|--dns) shift;
|
||||
dns+=("--dns $1")
|
||||
;;
|
||||
(-d|--dirs) shift;
|
||||
dirs+=("-v $1:$1:ro")
|
||||
;;
|
||||
@@ -223,7 +228,7 @@ function ifthenelse() {
|
||||
set -x
|
||||
|
||||
docker pull $img
|
||||
DOCKER_ID=$(docker create ${dirs[@]} ${envs[@]} -w /workdir $img sleep infinity)
|
||||
DOCKER_ID=$(docker create ${dns[@]} ${dirs[@]} ${envs[@]} -w /workdir $img sleep infinity)
|
||||
trap 'traperror '"${DOCKER_ID}"' "$? ${PIPESTATUS[@]}" $LINENO $BASH_LINENO "$BASH_COMMAND" "${FUNCNAME[@]}" "${FUNCTION}"' SIGINT INT TERM EXIT
|
||||
if ! [[ $arch =~ $myarch ]]; then
|
||||
docker cp "/usr/bin/qemu-${arch}-static" "${DOCKER_ID}:/usr/bin/qemu-${arch}-static"
|
||||
@@ -250,16 +255,16 @@ case $mode in
|
||||
done
|
||||
docker exec ${DOCKER_ID} apt-get update ${OPTIONS}
|
||||
docker exec ${DOCKER_ID} apt-get upgrade ${OPTIONS}
|
||||
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties software-properties-common apt-transport-https dpkg-dev lsb-release || \
|
||||
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} software-properties-common apt-transport-https dpkg-dev lsb-release || \
|
||||
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties apt-transport-https dpkg-dev lsb-release;
|
||||
for repo in "${repos[@]}"; do
|
||||
ifthenelse "${repo}" "apt-add-repository 'ARG'"
|
||||
done
|
||||
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties software-properties-common apt-transport-https dpkg-dev lsb-release wget || \
|
||||
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} software-properties-common apt-transport-https dpkg-dev lsb-release wget || \
|
||||
docker exec ${DOCKER_ID} apt-get install ${OPTIONS} python-software-properties apt-transport-https dpkg-dev lsb-release wget;
|
||||
for key in "${keys[@]}"; do
|
||||
wget -O- "$key" \
|
||||
| docker exec -i ${DOCKER_ID} apt-key add -
|
||||
done
|
||||
for repo in "${repos[@]}"; do
|
||||
ifthenelse "${repo}" "apt-add-repository 'ARG'"
|
||||
done
|
||||
docker exec ${DOCKER_ID} apt-get update ${OPTIONS}
|
||||
for package in "${packages[@]}"; do
|
||||
ifthenelse "${package}" "apt-get install ${OPTIONS} ARG"
|
||||
|
Reference in New Issue
Block a user