X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/36ca0d3ede8554a229d6872b151b7e79ce959ba9..346a55897f4e4a2a26a1a84665f860c000b3da7d:/docker/mkimage-debootstrap.sh?ds=sidebyside diff --git a/docker/mkimage-debootstrap.sh b/docker/mkimage-debootstrap.sh index a078801b90..2ad79ef856 100755 --- a/docker/mkimage-debootstrap.sh +++ b/docker/mkimage-debootstrap.sh @@ -86,13 +86,19 @@ if [ ! "$repo" ] || [ ! "$suite" ]; then fi # some rudimentary detection for whether we need to "sudo" our docker calls -docker='' -if docker version > /dev/null 2>&1; then - docker='docker' -elif sudo docker version > /dev/null 2>&1; then - docker='sudo docker' -elif command -v docker > /dev/null 2>&1; then - docker='docker' +set +e +docker=`which docker.io` +if [[ "$docker" == "" ]]; then + docker=`which docker` +fi +set -e + +if $docker version > /dev/null 2>&1; then + docker="$docker" +elif sudo $docker version > /dev/null 2>&1; then + docker="sudo $docker" +elif command -v $docker > /dev/null 2>&1; then + docker="$docker" else echo >&2 "warning: either docker isn't installed, or your current user cannot run it;" echo >&2 " this script is not likely to work as expected" @@ -112,7 +118,7 @@ fi # will be filled in later, if [ -z "$skipDetection" ] lsbDist='' -target="/tmp/docker-rootfs-debootstrap-$suite-$$-$RANDOM" +target="${TMPDIR:-/tmp}/docker-rootfs-debootstrap-$suite-$$-$RANDOM" cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" returnTo="$(pwd -P)" @@ -195,32 +201,33 @@ else sudo tar --numeric-owner -c . | $docker import - $repo:$suite # test the image - $docker run -i -t $repo:$suite echo success + [[ "$(/usr/bin/tty || true)" != "not a tty" ]] && RUN_OPTS="-i -t" + $docker run $RUN_OPS $repo:$suite echo success if [ -z "$skipDetection" ]; then case "$lsbDist" in Debian) if [ "$suite" = "$debianStable" -o "$suite" = 'stable' ] && [ -r etc/debian_version ]; then # tag latest - $docker tag $repo:$suite $repo:latest + $docker tag -f $repo:$suite $repo:latest if [ -r etc/debian_version ]; then # tag the specific debian release version (which is only reasonable to tag on debian stable) ver=$(cat etc/debian_version) - $docker tag $repo:$suite $repo:$ver + $docker tag -f $repo:$suite $repo:$ver fi fi ;; Ubuntu) if [ "$suite" = "$ubuntuLatestLTS" ]; then # tag latest - $docker tag $repo:$suite $repo:latest + $docker tag -f $repo:$suite $repo:latest fi if [ -r etc/lsb-release ]; then lsbRelease="$(. etc/lsb-release && echo "$DISTRIB_RELEASE")" if [ "$lsbRelease" ]; then # tag specific Ubuntu version number, if available (12.04, etc.) - $docker tag $repo:$suite $repo:$lsbRelease + $docker tag -f $repo:$suite $repo:$lsbRelease fi fi ;;