qt5base-lts/tests/testserver/docker-compose.yml
Ryan Chu 9e24b43cb9 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>
2018-07-05 14:13:36 +00:00

90 lines
3.0 KiB
YAML

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