summaryrefslogtreecommitdiffstats
path: root/tests/testserver/docker-compose.yml
diff options
context:
space:
mode:
authorRyan Chu <ryan.chu@qt.io>2018-02-28 16:48:38 +0100
committerRyan Chu <ryan.chu@qt.io>2018-07-05 14:13:36 +0000
commit9e24b43cb962d7d0035154a546ef281d0a786162 (patch)
treeb6ff855327bde315a0e6066c13c2b73881abb844 /tests/testserver/docker-compose.yml
parent7cd7d6ab3fbfffff8707271c03bb01bcbe5a6d45 (diff)
Docker-based test servers for network-related Qt autotests
The existing network test server has some limitations. Most notably, it is not accessible by every Qt developer. Also, some services don't allow simultaneous access, which causes flaky test results. Instead of centralizing all the services to one physical machine, the idea is to build up several dedicated servers inside separate Docker containers. 1. Create testserver.pri and integrate it into the make check command of Qt Test. 2. Define QT_TEST_SERVER flag for changing test parameters at compile time. Task-number: QTQAINFRA-1686 Change-Id: I0422ddb97eb8c11b4818771454851d19671253b1 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io> Reviewed-by: Ryan Chu <ryan.chu@qt.io>
Diffstat (limited to 'tests/testserver/docker-compose.yml')
-rw-r--r--tests/testserver/docker-compose.yml89
1 files changed, 89 insertions, 0 deletions
diff --git a/tests/testserver/docker-compose.yml b/tests/testserver/docker-compose.yml
new file mode 100644
index 0000000000..334818bc9b
--- /dev/null
+++ b/tests/testserver/docker-compose.yml
@@ -0,0 +1,89 @@
+version: '3.4'
+
+x-domains:
+ &testdomain
+ ${TESTSERVER_DOMAIN:-test-net.qt}
+
+# The tag of images is used by docker compose file to launch the corresponding
+# docker containers. The value of tag comes from the provisioning script
+# (coin/provisioning/.../testserver/docker_testserver.sh). The script gets SHA-1
+# of each server context as the tag of docker images. If one of the server
+# contexts gets changes, please make sure to update this compose file as well.
+# You can run command 'docker images' to list all the tag of test server images.
+# For example:
+# REPOSITORY TAG IMAGE ID
+# qt-test-server-apache2 e2a70c8b169c204e762b375885bd3a26cc40ba48 2ad5c8720317
+
+services:
+ apache2:
+ image: qt-test-server-apache2:e2a70c8b169c204e762b375885bd3a26cc40ba48
+ container_name: qt-test-server-apache2
+ domainname: *testdomain
+ hostname: apache2
+ volumes:
+ - ./common:/common:ro
+ - ./apache2:/service:ro
+ entrypoint: common/startup.sh
+ command: [common/ssl.sh, service/apache2.sh]
+
+ squid:
+ image: qt-test-server-squid:276768104d3bbf097f4f3d9f3dc472a067852094
+ container_name: qt-test-server-squid
+ domainname: *testdomain
+ hostname: squid
+ depends_on:
+ - apache2
+ external_links:
+ - apache2:apache2.test-net.qt
+ volumes:
+ - ./common:/common:ro
+ - ./squid:/service:ro
+ entrypoint: common/startup.sh
+ command: service/squid.sh
+
+ vsftpd:
+ image: qt-test-server-vsftpd:ab7ecdbbace1bce7642a92ce04e9051c7630376c
+ container_name: qt-test-server-vsftpd
+ domainname: *testdomain
+ hostname: vsftpd
+ depends_on:
+ - squid
+ volumes:
+ - ./common:/common:ro
+ - ./vsftpd:/service:ro
+ entrypoint: common/startup.sh
+ command: service/vsftpd.sh
+
+ ftp-proxy:
+ image: qt-test-server-ftp-proxy:4c5734fe60eb450cbf8a96165f67cba19851ec12
+ container_name: qt-test-server-ftp-proxy
+ domainname: *testdomain
+ hostname: ftp-proxy
+ depends_on:
+ - vsftpd
+ external_links:
+ - vsftpd:vsftpd.test-net.qt
+ volumes:
+ - ./common:/common:ro
+ - ./ftp-proxy:/service:ro
+ entrypoint: common/startup.sh
+ command: service/ftp-proxy.sh
+
+ danted:
+ image: qt-test-server-danted:8404549745b5601ec3d22dc019258b70438864de
+ container_name: qt-test-server-danted
+ domainname: *testdomain
+ hostname: danted
+ depends_on:
+ - apache2
+ - vsftpd
+ - ftp-proxy
+ external_links:
+ - apache2:apache2.test-net.qt
+ - vsftpd:vsftpd.test-net.qt
+ - ftp-proxy:ftp-proxy.test-net.qt
+ volumes:
+ - ./common:/common:ro
+ - ./danted:/service:ro
+ entrypoint: common/startup.sh
+ command: service/danted.sh