aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/build-docker-image2
-rwxr-xr-xtools/setup_docker.sh73
2 files changed, 74 insertions, 1 deletions
diff --git a/tools/build-docker-image b/tools/build-docker-image
index 06e95a326..cc23abe1a 100755
--- a/tools/build-docker-image
+++ b/tools/build-docker-image
@@ -35,7 +35,7 @@ EOF
[ -f $TOPDIR/.buildconf ] && . $TOPDIR/.buildconf
[ -f $IMGDIR/.buildconf ] && . $IMGDIR/.buildconf
-ARGS=$(getopt -o hr:n:t:pfuN -l help,namespace:,push,private-registry:,release,tag:,force-rm,no-cache,no-use-released-parent -- "$@") || { usage >&2; exit 2; }
+ARGS=$(getopt -o hr:n:t:pfuN -l help,namespace:,push,pull,private-registry:,release,tag:,force-rm,no-cache,no-use-released-parent -- "$@") || { usage >&2; exit 2; }
eval set -- "$ARGS"
diff --git a/tools/setup_docker.sh b/tools/setup_docker.sh
new file mode 100755
index 000000000..6be1ebeec
--- /dev/null
+++ b/tools/setup_docker.sh
@@ -0,0 +1,73 @@
+#!/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