kolla-ansible/tools/setup_docker.sh
Jeff Peeler 78b27e3e60 Clean up the image functional test
1. Move setup_docker.sh to tools directory

2. Make a setup_gate.sh that installs necessary packages including
   docker and starts docker.

3. Add logging output.

4. Add default test timeout of 2 hours.

5. Add user to the docker group before running test cases.

6. Run image build as dockerroot group.

This patch has to be one commit to fix the gate in one go.

Co-Authored-By: Steven Dake <stdake@cisco.com>

Change-Id: I83f3cdb1dabf0dfface589c581cb22c155467acc
2015-05-26 15:01:28 -04:00

74 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
#
# This script is used to setup Kolla Docker environment,
# after running this script, you can run Kolla functional test.
# NOTE: This script was only tested on redhat/debian/suse platform families.
#
set -xu
DOCKER_MIN_VERSION=1.6.0
function check_prerequisites() {
if [[ $EUID -ne 0 ]]; then
echo "You must execute this script as root." 1>&2
exit 1
fi
if [ "$OSTYPE" != "linux-gnu" ]; then
echo Platform not supported
exit 255
fi
if [ "$HOSTTYPE" != "x86_64" ]; then
echo Machine type not supported
exit 255
fi
}
function check_docker_version() {
local docker_version
local result
if type docker &>/dev/null; then
docker_version=$(docker --version 2>/dev/null | awk -F"[ ,]" '{print $3}')
result=$(awk 'BEGIN{print '$docker_version' >= '$DOCKER_MIN_VERSION'}')
if [ $result = 1 ]; then
return 0
fi
fi
return 1
}
function start_docker() {
pkill -x -9 docker
if check_docker_version; then
docker -d &>/dev/null &
else
curl -sSL https://get.docker.com/builds/Linux/x86_64/docker-$DOCKER_MIN_VERSION -o /usr/local/bin/docker
chmod +x /usr/local/bin/docker
/usr/local/bin/docker -d &>/dev/null &
fi
}
function create_group() {
getent group docker
result=$?
if [ $result -eq 0 ]; then # 0: key already exists, nothing to do
return
elif [ $result -eq 2 ]; then # 2: key could not be found in database
groupadd docker
chown root:docker /var/run/docker.sock
usermod -a -G docker ${SUDO_USER:-$USER}
else
echo Unexpected failure: $result
exit
fi
}
# Check for root privileges and correct platform
check_prerequisites
# Start Docker service
start_docker
# Ensure executing user is placed in the docker group
create_group