diff options
Diffstat (limited to 'coin/provisioning/common/shared/testserver')
28 files changed, 504 insertions, 0 deletions
diff --git a/coin/provisioning/common/shared/testserver/.gitattributes b/coin/provisioning/common/shared/testserver/.gitattributes new file mode 100644 index 00000000..fcadb2cf --- /dev/null +++ b/coin/provisioning/common/shared/testserver/.gitattributes @@ -0,0 +1 @@ +* text eol=lf diff --git a/coin/provisioning/common/shared/testserver/apache2/Dockerfile b/coin/provisioning/common/shared/testserver/apache2/Dockerfile new file mode 100644 index 00000000..c3dc5d59 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/apache2/Dockerfile @@ -0,0 +1,8 @@ +FROM qt_ubuntu_16.04 +ARG packages="avahi-daemon apache2 libcgi-session-perl" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 80 443 + +# install configurations and test data + +COPY rfc3252.txt . diff --git a/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile new file mode 100644 index 00000000..1a629c47 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/apache2_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon apache2 libcgi-session-perl" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 80 443 diff --git a/coin/provisioning/common/shared/testserver/californium/Dockerfile b/coin/provisioning/common/shared/testserver/californium/Dockerfile new file mode 100644 index 00000000..81d27f9b --- /dev/null +++ b/coin/provisioning/common/shared/testserver/californium/Dockerfile @@ -0,0 +1,15 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon maven default-jdk patch" +RUN apt-get update && apt-get -y install $packages + +# Get californium-based CoAP test server +WORKDIR /root/src +ADD californium-*.tar.gz . +RUN mv californium-* californium +WORKDIR /root/src/californium +ADD qt_changes.patch ./ +RUN patch -p1 < qt_changes.patch +RUN mvn clean install -q -DskipTests +WORKDIR / + +EXPOSE 5683/udp 5684/udp diff --git a/coin/provisioning/common/shared/testserver/californium/qt_changes.patch b/coin/provisioning/common/shared/testserver/californium/qt_changes.patch new file mode 100644 index 00000000..732c0daa --- /dev/null +++ b/coin/provisioning/common/shared/testserver/californium/qt_changes.patch @@ -0,0 +1,43 @@ +diff -ruN californium_3.8.0/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java californium/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java +--- californium_3.8.0/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java 2023-07-21 11:16:21.142201240 +0200 ++++ californium/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java 2023-07-21 11:16:51.074210378 +0200 +@@ -100,6 +100,14 @@ + import org.eclipse.californium.unixhealth.NetSocketHealthLogger; + import org.eclipse.californium.unixhealth.NetStatLogger; + ++import org.eclipse.californium.scandium.DTLSConnector; ++import org.eclipse.californium.scandium.config.DtlsConnectorConfig; ++import org.eclipse.californium.scandium.dtls.pskstore.AdvancedSinglePskStore; ++import org.eclipse.californium.core.network.CoapEndpoint; ++ ++import java.net.InetSocketAddress; ++import java.net.InetAddress; ++ + import picocli.CommandLine; + import picocli.CommandLine.ArgGroup; + import picocli.CommandLine.Command; +@@ -437,7 +445,23 @@ + // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("127.0.0.1", port))); + // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("2a01:c911:0:2010::10", port))); + // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("10.200.1.2", port))); +- server.addEndpoints(config); ++ // server.addEndpoints(config); ++ ++ CoapEndpoint.Builder endpointBuilder = new CoapEndpoint.Builder(); ++ endpointBuilder.setPort(5683); ++ server.addEndpoint(endpointBuilder.build()); ++ ++ AdvancedSinglePskStore pskStore = new AdvancedSinglePskStore("Client_identity", "secretPSK".getBytes()); ++ ++ DtlsConnectorConfig.Builder builder = new DtlsConnectorConfig.Builder(new Configuration()); ++ builder.setAddress(new InetSocketAddress(5684)); ++ builder.setAdvancedPskStore(pskStore); ++ DTLSConnector dtlsConnector = new DTLSConnector(builder.build()); ++ ++ endpointBuilder = new CoapEndpoint.Builder(); ++ endpointBuilder.setConnector(dtlsConnector); ++ server.addEndpoint(endpointBuilder.build()); ++ + if (server.getEndpoints().isEmpty()) { + System.err.println("no endpoint available!"); + System.exit(ERR_INIT_FAILED); diff --git a/coin/provisioning/common/shared/testserver/cyrus/Dockerfile b/coin/provisioning/common/shared/testserver/cyrus/Dockerfile new file mode 100644 index 00000000..4708ef5b --- /dev/null +++ b/coin/provisioning/common/shared/testserver/cyrus/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_16.04 +ARG packages="avahi-daemon cyrus-imapd" +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $packages && dpkg -l $packages +EXPOSE 143 993 diff --git a/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile new file mode 100644 index 00000000..c20ed4f9 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/cyrus_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon cyrus-imapd" +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y $packages && dpkg -l $packages +EXPOSE 143 993 diff --git a/coin/provisioning/common/shared/testserver/danted/Dockerfile b/coin/provisioning/common/shared/testserver/danted/Dockerfile new file mode 100644 index 00000000..0d3ca461 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/danted/Dockerfile @@ -0,0 +1,11 @@ +FROM qt_ubuntu_16.04 +ARG packages="avahi-daemon" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +COPY dante-server_1.4.1-1_amd64.deb . +RUN apt -y install ./dante-server_1.4.1-1_amd64.deb \ + && rm -f ./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/shared/testserver/danted/danted b/coin/provisioning/common/shared/testserver/danted/danted new file mode 100755 index 00000000..1da8203e --- /dev/null +++ b/coin/provisioning/common/shared/testserver/danted/danted @@ -0,0 +1,93 @@ +#! /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/shared/testserver/danted/danted-authenticating b/coin/provisioning/common/shared/testserver/danted/danted-authenticating new file mode 100755 index 00000000..7aa35db6 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/danted/danted-authenticating @@ -0,0 +1,97 @@ +#! /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/shared/testserver/danted_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile new file mode 100644 index 00000000..ba732bff --- /dev/null +++ b/coin/provisioning/common/shared/testserver/danted_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon dante-server" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 1080-1081 diff --git a/coin/provisioning/common/shared/testserver/docker_images.sh b/coin/provisioning/common/shared/testserver/docker_images.sh new file mode 100755 index 00000000..e4782a72 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/docker_images.sh @@ -0,0 +1,96 @@ +#!/usr/bin/env bash +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -e + +PROVISIONING_DIR="$(dirname "$0")/../../../" +# shellcheck source=../../../common/unix/common.sourced.sh +source "$PROVISIONING_DIR"/common/unix/common.sourced.sh +# shellcheck source=../../../common/unix/DownloadURL.sh +source "$PROVISIONING_DIR"/common/unix/DownloadURL.sh + +# Sort files by their SHA-1, and then return the accumulated result +sha1tree () { + # For example, macOS doesn't install sha1sum by default. In such case, it uses shasum instead. + [ -x "$(command -v sha1sum)" ] || SHASUM=shasum + + find "$@" -type f -print0 | \ + xargs -0 "${SHASUM-sha1sum}" | cut -d ' ' -f 1 | \ + sort | "${SHASUM-sha1sum}" | cut -d ' ' -f 1 +} + + +SERVER_PATH="$PROVISIONING_DIR/common/shared/testserver" + +source "$SERVER_PATH/settings.sh" + + +# Download all necessary dependencies outside of the dockerfiles, so that we +# can use provisioning functionality for cached and verified downloads. In the +# dockerfiles we just do COPY to put them where needed. + +echo 'Downloading support files for the docker images' + +DownloadURL \ + http://ci-files01-hki.ci.qt.io/input/docker/rfc3252.txt \ + https://tools.ietf.org/rfc/rfc3252.txt \ + 50c323dedce95e4fdc2db35cd1b8ebf9d74711bf5296ef438b88d186d7dd082d +cp rfc3252.txt "$SERVER_PATH/vsftpd/" +cp rfc3252.txt "$SERVER_PATH/apache2/" + +DownloadURL \ + http://ci-files01-hki.ci.qt.io/input/docker/dante-server_1.4.1-1_amd64.deb \ + http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb \ + 674a06f356cebd92c64920cec38a6687650a6f880198fbbad05aaaccca5c0a21 +mv dante-server_1.4.1-1_amd64.deb "$SERVER_PATH/danted/" + +DownloadURL \ + http://ci-files01-hki.ci.qt.io/input/docker/FreeCoAP-0.7.tar.gz \ + https://github.com/keith-cullen/FreeCoAP/archive/v0.7.tar.gz \ + fa6602e27dc8eaee6e34ff53400c0519da0c5c7cd47bf6f13acb564f52a693ee \ + FreeCoAP-0.7.tar.gz +mv FreeCoAP-0.7.tar.gz "$SERVER_PATH/freecoap/" + +# Eclipse Californium 3.8.0, requires to apply a custom patch from +# $SERVER_PATH/californium/ before usage +DownloadURL \ + http://ci-files01-hki.ci.qt.io/input/docker/californium-3.8.0.tar.gz \ + https://github.com/eclipse-californium/californium/archive/refs/tags/3.8.0.tar.gz \ + 24f8ca393f26c922739462e4586b8ced1ff75f99bfa795defa34a967b5a4a5a0 \ + californium-3.8.0.tar.gz +mv californium-3.8.0.tar.gz "$SERVER_PATH/californium/" + + +echo 'Building the docker images...' + +# Build the 2 base layers: qt_ubuntu_1604, qt_ubuntu_1804. +# These are the base for all other docker images. +for image in qt_ubuntu_16.04 qt_ubuntu_18.04 +do + docker build -t $image \ + --build-arg COIN_RUNS_IN_QT_COMPANY="$COIN_RUNS_IN_QT_COMPANY" \ + "$SERVER_PATH/$image" +done + + +for server in $testserver +do + + # We label each docker image with `-t name:tag`. + # A tag labels a specific image version. In the docker compose file + # (docker-compose.yml) that launches the containers, the tag used is + # "latest". Here the images are additionally tagged with the SHA1 of each + # image directory (context), so that if needed we can modify + # docker-compose.yml and modify "latest" to a SHA in order to launch a + # very specific image, thus providing a way to stage + # backwards-incompatible changes across repositories. + + context="$SERVER_PATH/$server" + tag=$(sha1tree "$context") + docker build -t "qt-test-server-$server:latest" \ + -t "qt-test-server-$server:$tag" \ + "$context" +done + +docker images diff --git a/coin/provisioning/common/shared/testserver/docker_machine.sh b/coin/provisioning/common/shared/testserver/docker_machine.sh new file mode 100755 index 00000000..9abf0caa --- /dev/null +++ b/coin/provisioning/common/shared/testserver/docker_machine.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +TestMachine='qt-test-server' + +# Deploy docker virtual machine (Boot2Docker) into VirtualBox only if it doesn't exist +if [ -z "$(docker-machine ls -q --filter "name=$TestMachine")" ] +then + docker-machine create "$@" "$TestMachine" + docker-machine ip "$TestMachine" +else + # Otherwise, start the docker machine and update with new TLS certificates. + docker-machine start "$TestMachine" && docker-machine regenerate-certs -f "$TestMachine" +fi + +# Switch the docker engine to $TestMachine +eval "$(docker-machine env "$TestMachine")" + +docker-machine ls diff --git a/coin/provisioning/common/shared/testserver/docker_testserver.sh b/coin/provisioning/common/shared/testserver/docker_testserver.sh new file mode 100755 index 00000000..7e743a80 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/docker_testserver.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +[ -x "$(command -v realpath)" ] && FILE=$(realpath "${BASH_SOURCE[0]}") || FILE="${BASH_SOURCE[0]}" +case $FILE in + */*) SERVER_PATH="${FILE%/*}" ;; + *) SERVER_PATH="." ;; +esac + +# Create docker virtual machine (Boot2docker) +case $1 in + VMX) source "$SERVER_PATH/docker_machine.sh" "-d virtualbox" ;; + Hyper-V) + # The Hyper-v has been enabled in Windows 10. Disable checking the hardware virtualization. + source "$SERVER_PATH/docker_machine.sh" "-d virtualbox --virtualbox-no-vtx-check" ;; + *) ;; +esac + +# Display system-wide information of docker-engine +docker info + +# Create images +"$SERVER_PATH/docker_images.sh" diff --git a/coin/provisioning/common/shared/testserver/echo/Dockerfile b/coin/provisioning/common/shared/testserver/echo/Dockerfile new file mode 100644 index 00000000..a20419c6 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/echo/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_16.04 +ARG packages="avahi-daemon xinetd" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 7 7/UDP 13 diff --git a/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile new file mode 100644 index 00000000..e86357a2 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/echo_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon xinetd" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 7 7/UDP 13 diff --git a/coin/provisioning/common/shared/testserver/freecoap/Dockerfile b/coin/provisioning/common/shared/testserver/freecoap/Dockerfile new file mode 100644 index 00000000..7b2a27a7 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/freecoap/Dockerfile @@ -0,0 +1,14 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon autoconf automake libtool make libgnutls28-dev" +RUN apt-get update && apt-get -y install $packages + +WORKDIR /root/src +ADD FreeCoAP-*.tar.gz . +RUN mv FreeCoAP-* FreeCoAP +WORKDIR /root/src/FreeCoAP +RUN autoreconf --install && ./configure && make && make install +WORKDIR sample/time_server +RUN make +WORKDIR / + +EXPOSE 5685/udp diff --git a/coin/provisioning/common/shared/testserver/ftp-proxy/Dockerfile b/coin/provisioning/common/shared/testserver/ftp-proxy/Dockerfile new file mode 100644 index 00000000..de3e5b86 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/ftp-proxy/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_16.04 +ARG packages="avahi-daemon ftp-proxy" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 2121 diff --git a/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile new file mode 100644 index 00000000..383ba140 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/ftp-proxy_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon ftp-proxy" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 2121 diff --git a/coin/provisioning/common/shared/testserver/iptables/Dockerfile b/coin/provisioning/common/shared/testserver/iptables/Dockerfile new file mode 100644 index 00000000..1c2a4b4d --- /dev/null +++ b/coin/provisioning/common/shared/testserver/iptables/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_16.04 +ARG packages="avahi-daemon iptables" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 1357 diff --git a/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile new file mode 100644 index 00000000..49b277c7 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/iptables_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon iptables" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 1357 diff --git a/coin/provisioning/common/shared/testserver/qt_ubuntu_16.04/Dockerfile b/coin/provisioning/common/shared/testserver/qt_ubuntu_16.04/Dockerfile new file mode 100644 index 00000000..a9c8b9ef --- /dev/null +++ b/coin/provisioning/common/shared/testserver/qt_ubuntu_16.04/Dockerfile @@ -0,0 +1,5 @@ +FROM ubuntu:16.04 +ARG COIN_RUNS_IN_QT_COMPANY +RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \ + && sed -i 's;\(archive\|security\)\.ubuntu\.com;repo-clones.ci.qt.io/apt-mirror/mirror;' /etc/apt/sources.list \ + || echo "Internal package repository not found. Using public repositories." diff --git a/coin/provisioning/common/shared/testserver/qt_ubuntu_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/qt_ubuntu_18.04/Dockerfile new file mode 100644 index 00000000..f62a29c6 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/qt_ubuntu_18.04/Dockerfile @@ -0,0 +1,5 @@ +FROM ubuntu:18.04 +ARG COIN_RUNS_IN_QT_COMPANY +RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \ + && sed -i 's;\(archive\|security\)\.ubuntu\.com;repo-clones.ci.qt.io/apt-mirror/mirror;' /etc/apt/sources.list \ + || echo "Internal package repository not found. Using public repositories." diff --git a/coin/provisioning/common/shared/testserver/settings.sh b/coin/provisioning/common/shared/testserver/settings.sh new file mode 100755 index 00000000..03276eeb --- /dev/null +++ b/coin/provisioning/common/shared/testserver/settings.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +# A list of test servers to be provisioned +testserver='apache2 squid vsftpd ftp-proxy danted echo cyrus iptables californium freecoap' +testserver="$testserver apache2_18.04 squid_18.04 vsftpd_18.04 ftp-proxy_18.04 danted_18.04 echo_18.04 cyrus_18.04 iptables_18.04" diff --git a/coin/provisioning/common/shared/testserver/squid/Dockerfile b/coin/provisioning/common/shared/testserver/squid/Dockerfile new file mode 100644 index 00000000..330d3929 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/squid/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_16.04 +ARG packages="avahi-daemon squid" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 3128-3130 diff --git a/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile new file mode 100644 index 00000000..239ea4c8 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/squid_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon squid" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 3128-3130 diff --git a/coin/provisioning/common/shared/testserver/vsftpd/Dockerfile b/coin/provisioning/common/shared/testserver/vsftpd/Dockerfile new file mode 100644 index 00000000..4c2e00e4 --- /dev/null +++ b/coin/provisioning/common/shared/testserver/vsftpd/Dockerfile @@ -0,0 +1,7 @@ +FROM qt_ubuntu_16.04 +ARG packages="avahi-daemon vsftpd ftp" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 20-21 + +# install configurations and test data +COPY rfc3252.txt . diff --git a/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile b/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile new file mode 100644 index 00000000..8886308c --- /dev/null +++ b/coin/provisioning/common/shared/testserver/vsftpd_18.04/Dockerfile @@ -0,0 +1,4 @@ +FROM qt_ubuntu_18.04 +ARG packages="avahi-daemon vsftpd" +RUN apt-get update && apt-get install -y $packages && dpkg -l $packages +EXPOSE 20-21 |