aboutsummaryrefslogtreecommitdiffstats
path: root/coin/provisioning/common/linux
diff options
context:
space:
mode:
Diffstat (limited to 'coin/provisioning/common/linux')
-rwxr-xr-xcoin/provisioning/common/linux/docker.sh7
-rwxr-xr-xcoin/provisioning/common/linux/docker_testserver.sh (renamed from coin/provisioning/common/linux/testserver/docker_testserver.sh)35
-rw-r--r--coin/provisioning/common/linux/testserver/apache2/Dockerfile7
-rw-r--r--coin/provisioning/common/linux/testserver/danted/Dockerfile10
-rwxr-xr-xcoin/provisioning/common/linux/testserver/danted/danted93
-rwxr-xr-xcoin/provisioning/common/linux/testserver/danted/danted-authenticating97
-rw-r--r--coin/provisioning/common/linux/testserver/ftp-proxy/Dockerfile4
-rw-r--r--coin/provisioning/common/linux/testserver/squid/Dockerfile4
-rw-r--r--coin/provisioning/common/linux/testserver/vsftpd/Dockerfile7
9 files changed, 19 insertions, 245 deletions
diff --git a/coin/provisioning/common/linux/docker.sh b/coin/provisioning/common/linux/docker.sh
index 16af0a0a..1d9e8419 100755
--- a/coin/provisioning/common/linux/docker.sh
+++ b/coin/provisioning/common/linux/docker.sh
@@ -2,7 +2,7 @@
#############################################################################
##
-## Copyright (C) 2017 The Qt Company Ltd.
+## Copyright (C) 2018 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -48,5 +48,8 @@ sudo docker info
sudo curl -L https://github.com/docker/compose/releases/download/1.21.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
+# Install Avahi to discover Docker containers in the test network
+sudo apt-get install avahi-daemon -y
+
# Start testserver provisioning
-source "${BASH_SOURCE%/*}/testserver/docker_testserver.sh"
+source "${BASH_SOURCE%/*}/docker_testserver.sh"
diff --git a/coin/provisioning/common/linux/testserver/docker_testserver.sh b/coin/provisioning/common/linux/docker_testserver.sh
index 2534c416..2d5d9611 100755
--- a/coin/provisioning/common/linux/testserver/docker_testserver.sh
+++ b/coin/provisioning/common/linux/docker_testserver.sh
@@ -2,7 +2,7 @@
#############################################################################
##
-## Copyright (C) 2017 The Qt Company Ltd.
+## Copyright (C) 2018 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the provisioning scripts of the Qt Toolkit.
@@ -35,35 +35,28 @@
set -ex
+case ${BASH_SOURCE[0]} in
+ */linux/*) SERVER_PATH="${BASH_SOURCE[0]%/linux/*}/shared/testserver" ;;
+ */*) SERVER_PATH="${BASH_SOURCE[0]%/*}/../shared/testserver" ;;
+ *) SERVER_PATH="../shared/testserver" ;;
+esac
+
+# testserver shared scripts
+source "$SERVER_PATH/testserver_util.sh"
+
# Using SHA-1 of each server context as the tag of docker images. A tag labels a
# specific image version. It is used by docker compose file (docker-compose.yml)
# to launch the corresponding docker containers. If one of the server contexts
# (./apache2, ./danted, ...) gets changes, all the related compose files in
# qtbase should be updated as well.
-#
-# For example, here's how to get the SHA-1 of apache test server.
-# find ./apache2 -type f -print0 | sort -z | xargs -r0 sha1sum | \
-# awk '{ print $1 }' | sha1sum | awk '{ print $1 }'
-testserver='apache2 squid vsftpd ftp-proxy danted'
+source "$SERVER_PATH/settings.sh"
for server in $testserver
do
- context="${BASH_SOURCE%/*}/$server"
- sha1=$(find $context -type f -print0 | sort -z | xargs -r0 sha1sum | awk '{ print $1 }' | \
- sha1sum | awk '{ print $1 }')
- sudo docker build -t qt-test-server-$server:$sha1 $context
-
- # transition - The fixed tag is temporarily used by CI to pass the qtbase testing.
- case $server in
- apache2) fixed_tag="cc9ea678b92bdda33acb9fa0159bb4ad0f3cd947" ;;
- squid) fixed_tag="577d99307eea9a8cccfec944d25be2bce2fe99cc" ;;
- vsftpd) fixed_tag="18896604c7e90b543e56d80c8a8aabdb65a590d0" ;;
- ftp-proxy) fixed_tag="2c6c8f1ab6a364b540c43d705fb6f15a585cb2af" ;;
- danted) fixed_tag="327dd56c3c35db85b26fac93213a5a1918475bc7" ;;
- esac
- [ -z "$fixed_tag" ] || \
- sudo docker tag qt-test-server-$server:$sha1 qt-test-server-$server:$fixed_tag
+ context="$SERVER_PATH/$server"
+ # Sort files by their SHA-1 and use the accumulated result as the TAG
+ sudo docker build -t qt-test-server-$server:$(sha1tree $context) $context
done
sudo docker images
diff --git a/coin/provisioning/common/linux/testserver/apache2/Dockerfile b/coin/provisioning/common/linux/testserver/apache2/Dockerfile
deleted file mode 100644
index b39eb21e..00000000
--- a/coin/provisioning/common/linux/testserver/apache2/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM ubuntu:16.04
-ARG packages="apache2 libcgi-session-perl wget avahi-daemon"
-RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
-EXPOSE 80 443
-
-# install configurations and test data
-RUN wget https://tools.ietf.org/rfc/rfc3252.txt
diff --git a/coin/provisioning/common/linux/testserver/danted/Dockerfile b/coin/provisioning/common/linux/testserver/danted/Dockerfile
deleted file mode 100644
index 67c1159b..00000000
--- a/coin/provisioning/common/linux/testserver/danted/Dockerfile
+++ /dev/null
@@ -1,10 +0,0 @@
-FROM ubuntu:16.04
-ARG packages="gdebi-core wget avahi-daemon"
-RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
-RUN wget http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb
-RUN gdebi -n dante-server_1.4.1-1_amd64.deb
-EXPOSE 1080-1081
-
-# install configurations and test data
-COPY danted /etc/init.d/
-COPY danted-authenticating /etc/init.d/
diff --git a/coin/provisioning/common/linux/testserver/danted/danted b/coin/provisioning/common/linux/testserver/danted/danted
deleted file mode 100755
index 1da8203e..00000000
--- a/coin/provisioning/common/linux/testserver/danted/danted
+++ /dev/null
@@ -1,93 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides: danted
-# Required-Start: $remote_fs $syslog
-# Required-Stop: $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: SOCKS (v4 and v5) proxy daemon (danted)
-### END INIT INFO
-#
-# dante SOCKS server init.d file. Based on /etc/init.d/skeleton:
-# Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/sbin/danted
-NAME=danted
-DESC="Dante SOCKS daemon"
-PIDFILE=/var/run/$NAME.pid
-CONFFILE=/etc/$NAME.conf
-
-test -f $DAEMON || exit 0
-
-set -e
-
-# This function makes sure that the Dante server can write to the pid-file.
-touch_pidfile ()
-{
- if [ -r $CONFFILE ]; then
- uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' \
- $CONFFILE`"
- if [ -n "$uid" ]; then
- touch $PIDFILE
- chown $uid $PIDFILE
- fi
- fi
-}
-
-. /lib/lsb/init-functions
-
-case "$1" in
- start)
- if ! egrep -cve '^ *(#|$)' \
- -e '^(logoutput|user\.((not)?privileged|libwrap)):' $CONFFILE > /dev/null
- then
- echo "Not starting $DESC: not configured."
- exit 0
- fi
- echo -n "Starting $DESC: "
- touch_pidfile
- start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON -- -D
- echo "$NAME."
- ;;
- stop)
- echo -n "Stopping $DESC: "
- start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
- echo "$NAME."
- ;;
- reload|force-reload)
- #
- # If the daemon can reload its config files on the fly
- # for example by sending it SIGHUP, do it here.
- #
- # If the daemon responds to changes in its config file
- # directly anyway, make this a do-nothing entry.
- #
- echo "Reloading $DESC configuration files."
- start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --exec $DAEMON -- -D
- ;;
- restart)
- #
- # If the "reload" option is implemented, move the "force-reload"
- # option to the "reload" entry above. If not, "force-reload" is
- # just the same as "restart".
- #
- echo -n "Restarting $DESC: "
- start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
- sleep 1
- touch_pidfile
- start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- -D
- echo "$NAME."
- ;;
- status)
- status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
- ;;
- *)
- N=/etc/init.d/$NAME
- # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
- echo "Usage: $N {start|stop|restart|force-reload}" >&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/coin/provisioning/common/linux/testserver/danted/danted-authenticating b/coin/provisioning/common/linux/testserver/danted/danted-authenticating
deleted file mode 100755
index 7aa35db6..00000000
--- a/coin/provisioning/common/linux/testserver/danted/danted-authenticating
+++ /dev/null
@@ -1,97 +0,0 @@
-#! /bin/sh
-### BEGIN INIT INFO
-# Provides: danted-authenticating
-# Required-Start: $remote_fs $syslog
-# Required-Stop: $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: SOCKS (v4 and v5) proxy daemon (danted)
-### END INIT INFO
-#
-# dante SOCKS server init.d file. Based on /etc/init.d/skeleton:
-# Version: @(#)skeleton 1.8 03-Mar-1998 miquels@cistron.nl
-
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/sbin/danted
-NAME=danted-authenticating
-DESC="Dante SOCKS daemon"
-PIDFILE=/var/run/$NAME.pid
-CONFFILE=/etc/$NAME.conf
-DANTED_ARGS="-D -f $CONFFILE"
-
-test -f $DAEMON || exit 0
-
-set -e
-
-# This function makes sure that the Dante server can write to the pid-file.
-touch_pidfile ()
-{
- if [ -r $CONFFILE ]; then
- uid="`sed -n -e 's/[[:space:]]//g' -e 's/#.*//' -e '/^user\.privileged/{s/[^:]*://p;q;}' \
- $CONFFILE`"
- if [ -n "$uid" ]; then
- touch $PIDFILE
- chown $uid $PIDFILE
- fi
- fi
-}
-
-. /lib/lsb/init-functions
-
-case "$1" in
- start)
- if ! egrep -cve '^ *(#|$)' \
- -e '^(logoutput|user\.((not)?privileged|libwrap)):' $CONFFILE > /dev/null
- then
- echo "Not starting $DESC: not configured."
- exit 0
- fi
- echo -n "Starting $DESC: "
- touch_pidfile
- start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE \
- --exec $DAEMON -- $DANTED_ARGS
- echo "$NAME."
- ;;
- stop)
- echo -n "Stopping $DESC: "
- start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
- echo "$NAME."
- ;;
- reload|force-reload)
- #
- # If the daemon can reload its config files on the fly
- # for example by sending it SIGHUP, do it here.
- #
- # If the daemon responds to changes in its config file
- # directly anyway, make this a do-nothing entry.
- #
- echo "Reloading $DESC configuration files."
- start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE \
- --exec $DAEMON -- $DANTED_ARGS
- ;;
- restart)
- #
- # If the "reload" option is implemented, move the "force-reload"
- # option to the "reload" entry above. If not, "force-reload" is
- # just the same as "restart".
- #
- echo -n "Restarting $DESC: "
- start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
- sleep 1
- touch_pidfile
- start-stop-daemon --start --quiet --pidfile $PIDFILE \
- --exec $DAEMON -- $DANTED_ARGS
- echo "$NAME."
- ;;
- status)
- status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
- ;;
- *)
- N=/etc/init.d/$NAME
- # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
- echo "Usage: $N {start|stop|restart|force-reload}" >&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/coin/provisioning/common/linux/testserver/ftp-proxy/Dockerfile b/coin/provisioning/common/linux/testserver/ftp-proxy/Dockerfile
deleted file mode 100644
index c719c1eb..00000000
--- a/coin/provisioning/common/linux/testserver/ftp-proxy/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM ubuntu:16.04
-ARG packages="ftp-proxy avahi-daemon"
-RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
-EXPOSE 2121
diff --git a/coin/provisioning/common/linux/testserver/squid/Dockerfile b/coin/provisioning/common/linux/testserver/squid/Dockerfile
deleted file mode 100644
index f0ed68b3..00000000
--- a/coin/provisioning/common/linux/testserver/squid/Dockerfile
+++ /dev/null
@@ -1,4 +0,0 @@
-FROM ubuntu:16.04
-ARG packages="squid avahi-daemon"
-RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
-EXPOSE 3128-3130
diff --git a/coin/provisioning/common/linux/testserver/vsftpd/Dockerfile b/coin/provisioning/common/linux/testserver/vsftpd/Dockerfile
deleted file mode 100644
index af6cd7c7..00000000
--- a/coin/provisioning/common/linux/testserver/vsftpd/Dockerfile
+++ /dev/null
@@ -1,7 +0,0 @@
-FROM ubuntu:16.04
-ARG packages="vsftpd ftp wget avahi-daemon"
-RUN apt-get update && apt-get install -y $packages && dpkg -l $packages
-EXPOSE 20-21
-
-# install configurations and test data
-RUN wget https://tools.ietf.org/rfc/rfc3252.txt