78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# Run the integration tests with multiple versions of the Docker engine
 | 
						|
 | 
						|
set -e
 | 
						|
set -x
 | 
						|
 | 
						|
# Don't use /tmp because this isn't available in boot2docker
 | 
						|
tmpdir_template="`pwd`/docker-versions.XXXXX"
 | 
						|
tmpdir=`mktemp -d "$tmpdir_template"`
 | 
						|
trap "rm -rf $tmpdir" EXIT
 | 
						|
 | 
						|
if [ "$1" == "-d" ]; then
 | 
						|
	# Start docker daemon
 | 
						|
 | 
						|
	# Drivers to use for Docker engines the tests are going to create.
 | 
						|
	STORAGE_DRIVER=${STORAGE_DRIVER:-overlay}
 | 
						|
	EXEC_DRIVER=${EXEC_DRIVER:-native}
 | 
						|
 | 
						|
	docker --daemon --log-level=panic \
 | 
						|
		--storage-driver="$STORAGE_DRIVER" --exec-driver="$EXEC_DRIVER" &
 | 
						|
	DOCKER_PID=$!
 | 
						|
 | 
						|
	# Wait for it to become reachable.
 | 
						|
	tries=10
 | 
						|
	until docker version &> /dev/null; do
 | 
						|
		(( tries-- ))
 | 
						|
		if [ $tries -le 0 ]; then
 | 
						|
			echo >&2 "error: daemon failed to start"
 | 
						|
			exit 1
 | 
						|
		fi
 | 
						|
		sleep 1
 | 
						|
	done
 | 
						|
fi
 | 
						|
 | 
						|
# If DOCKER_VOLUME is unset, create a temporary directory to cache containers
 | 
						|
# between runs
 | 
						|
# Only do this on Linux, because using /var/lib/docker from a host volume seems
 | 
						|
# problematic with boot2docker.
 | 
						|
if [ "$DOCKER_VOLUME" = "" -a `uname` = "Linux" ]; then
 | 
						|
	volumes_template="`pwd`/docker-versions.XXXXX"
 | 
						|
	volume=`mktemp -d "$volumes_template"`
 | 
						|
	trap "rm -rf $tmpdir $volume" EXIT
 | 
						|
else
 | 
						|
	volume="$DOCKER_VOLUME"
 | 
						|
fi
 | 
						|
 | 
						|
# Released versions
 | 
						|
 | 
						|
versions="1.6.0 1.6.1 1.7.0 1.7.1"
 | 
						|
 | 
						|
for v in $versions; do
 | 
						|
	echo "Extracting Docker $v from dind image"
 | 
						|
	binpath="$tmpdir/docker-$v/docker"
 | 
						|
	ID=$(docker create dockerswarm/dind:$v)
 | 
						|
	docker cp "$ID:/usr/local/bin/docker" "$tmpdir/docker-$v"
 | 
						|
 | 
						|
	echo "Running tests with Docker $v"
 | 
						|
	DOCKER_BINARY="$binpath" DOCKER_VOLUME="$volume" ./run.sh
 | 
						|
 | 
						|
	# Cleanup.
 | 
						|
	docker rm -f "$ID"
 | 
						|
done
 | 
						|
 | 
						|
# Latest experimental version
 | 
						|
 | 
						|
echo "Extracting Docker master from dind image"
 | 
						|
binpath="$tmpdir/docker-master/docker"
 | 
						|
docker pull dockerswarm/dind-master
 | 
						|
ID=$(docker create dockerswarm/dind-master)
 | 
						|
docker cp "$ID:/usr/local/bin/docker" "$tmpdir/docker-master"
 | 
						|
 | 
						|
echo "Running tests with Docker master"
 | 
						|
DOCKER_BINARY="$binpath" DOCKER_VOLUME="$volume" ./run.sh
 | 
						|
 | 
						|
# Cleanup.
 | 
						|
docker rm -f "$ID"
 |