Merge branch '7751-mount-tmp' refs #7751
[arvados.git] / docker / mkimage-debootstrap.sh
index 1eefac9479e67eb196b9794b2b024769391d9284..2ad79ef856009f647e768af1589c62a8c9bbc13a 100755 (executable)
@@ -86,10 +86,12 @@ if [ ! "$repo" ] || [ ! "$suite" ]; then
 fi
 
 # some rudimentary detection for whether we need to "sudo" our docker calls
+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"
@@ -116,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)"
@@ -199,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
                                ;;