From 57055ffafd9c32168e2ee94ba73655126fbaac38 Mon Sep 17 00:00:00 2001 From: Ryan Chu Date: Thu, 11 Apr 2019 16:04:06 +0200 Subject: Share the common configurations among different modules This change is used to generalize a template docker-compose file for all modules. Ideally, the leaf module only need to keep a docker compose file for all platforms (docker-compose.yml). NOTE: The version of docker-compose file downgrades from 3.4 to 2.1 because the 'extends' keyword is not supported in Compose version 3.x. Change-Id: I2e36fd9236eda86cb5fcf940d787ccefe9200696 Reviewed-by: Maurice Kalinowski --- tests/testserver/docker-compose-bridge-network.yml | 157 +++++++++++++++++++++ tests/testserver/docker-compose-for-macOS.yml | 113 --------------- tests/testserver/docker-compose-for-windows.yml | 113 --------------- tests/testserver/docker-compose-host-network.yml | 102 +++++++++++++ tests/testserver/docker-compose.yml | 157 --------------------- 5 files changed, 259 insertions(+), 383 deletions(-) create mode 100644 tests/testserver/docker-compose-bridge-network.yml delete mode 100644 tests/testserver/docker-compose-for-macOS.yml delete mode 100644 tests/testserver/docker-compose-for-windows.yml create mode 100644 tests/testserver/docker-compose-host-network.yml delete mode 100644 tests/testserver/docker-compose.yml (limited to 'tests/testserver') diff --git a/tests/testserver/docker-compose-bridge-network.yml b/tests/testserver/docker-compose-bridge-network.yml new file mode 100644 index 0000000000..2cabeee1dc --- /dev/null +++ b/tests/testserver/docker-compose-bridge-network.yml @@ -0,0 +1,157 @@ +version: '2.1' + +# 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 tags of test server images. +# For example: +# REPOSITORY TAG +# qt-test-server-apache2 537fe302f61851d1663f41495230d8e3554a4a13 + +services: + apache2: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-apache2 + hostname: ${HOST_NAME:-apache2} + build: + context: . + args: + provisioningImage: qt-test-server-apache2:537fe302f61851d1663f41495230d8e3554a4a13 + shareDir: ./common + serviceDir: ./apache2 + entrypoint: service/startup.sh + command: [service/ssl.sh, service/apache2.sh] + + squid: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-squid + hostname: ${HOST_NAME:-squid} + depends_on: + - apache2 + external_links: + - apache2:apache2.${TEST_DOMAIN} + - cyrus:cyrus.${TEST_DOMAIN} + - iptables:iptables.${TEST_DOMAIN} + - vsftpd:vsftpd.${TEST_DOMAIN} + - echo:echo.${TEST_DOMAIN} + build: + context: . + args: + provisioningImage: qt-test-server-squid:9c32f41b19aca3d778733c4d8fb0ecc5955e893c + shareDir: ./common + serviceDir: ./squid + entrypoint: service/startup.sh + command: service/squid.sh + + vsftpd: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-vsftpd + hostname: ${HOST_NAME:-vsftpd} + build: + context: . + args: + provisioningImage: qt-test-server-vsftpd:f3a9c8d793a77cc007c0e4e481bec01f9e3eeb7e + shareDir: ./common + serviceDir: ./vsftpd + entrypoint: service/startup.sh + command: service/vsftpd.sh + + ftp-proxy: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-ftp-proxy + hostname: ${HOST_NAME:-ftp-proxy} + depends_on: + - vsftpd + external_links: + - vsftpd:vsftpd.${TEST_DOMAIN} + build: + context: . + args: + provisioningImage: qt-test-server-ftp-proxy:d7de8b28392d173db512a558ccc84ead8bece2ae + shareDir: ./common + serviceDir: ./ftp-proxy + entrypoint: service/startup.sh + command: service/ftp-proxy.sh + + danted: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-danted + hostname: ${HOST_NAME:-danted} + depends_on: + - apache2 + - vsftpd + - ftp-proxy + external_links: + - apache2:apache2.${TEST_DOMAIN} + - vsftpd:vsftpd.${TEST_DOMAIN} + - ftp-proxy:ftp-proxy.${TEST_DOMAIN} + - cyrus:cyrus.${TEST_DOMAIN} + - echo:echo.${TEST_DOMAIN} + build: + context: . + args: + provisioningImage: qt-test-server-danted:35607f9b790524cf9690c7d12a9a401696b7b6b5 + shareDir: ./common + serviceDir: ./danted + entrypoint: service/startup.sh + command: service/danted.sh + + cyrus: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-cyrus + hostname: ${HOST_NAME:-cyrus} + build: + context: . + args: + provisioningImage: qt-test-server-cyrus:c8d72754abc0e501afd624ce838e4df35505abc9 + shareDir: ./common + serviceDir: ./cyrus + entrypoint: service/startup.sh + command: [service/ssl.sh, service/cyrus.sh] + + iptables: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-iptables + hostname: ${HOST_NAME:-iptables} + build: + context: . + args: + provisioningImage: qt-test-server-iptables:cb7a8bd6d28602085a88c8ced7d67e28e75781e2 + shareDir: ./common + serviceDir: ./iptables + entrypoint: service/startup.sh + command: service/iptables.sh + cap_add: + - NET_ADMIN + - NET_RAW + + echo: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-echo + hostname: ${HOST_NAME:-echo} + build: + context: . + args: + provisioningImage: qt-test-server-echo:b29ad409e746a834c1055fd0f7a55fd5056da6ea + shareDir: ./common + serviceDir: ./echo + entrypoint: service/startup.sh + command: service/echo.sh diff --git a/tests/testserver/docker-compose-for-macOS.yml b/tests/testserver/docker-compose-for-macOS.yml deleted file mode 100644 index c5348e27b6..0000000000 --- a/tests/testserver/docker-compose-for-macOS.yml +++ /dev/null @@ -1,113 +0,0 @@ -version: '3.4' - -# 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 tags of test server images. -# For example: -# REPOSITORY TAG -# qt-test-server-apache2 537fe302f61851d1663f41495230d8e3554a4a13 - -services: - apache2: - container_name: qt-test-server-apache2 - domainname: ${TEST_DOMAIN} - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-apache2:537fe302f61851d1663f41495230d8e3554a4a13 - shareDir: ./common - serviceDir: ./apache2 - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: [service/ssl.sh, service/apache2.sh] - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - environment: - - test_cert="qt-test-server-host-network-cacert.pem" - - squid: - container_name: qt-test-server-squid - domainname: ${TEST_DOMAIN} - depends_on: - - apache2 - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-squid:9c32f41b19aca3d778733c4d8fb0ecc5955e893c - shareDir: ./common - serviceDir: ./squid - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/squid.sh - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - - vsftpd: - container_name: qt-test-server-vsftpd - domainname: ${TEST_DOMAIN} - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-vsftpd:f3a9c8d793a77cc007c0e4e481bec01f9e3eeb7e - shareDir: ./common - serviceDir: ./vsftpd - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/vsftpd.sh - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - - ftp-proxy: - container_name: qt-test-server-ftp-proxy - domainname: ${TEST_DOMAIN} - depends_on: - - vsftpd - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-ftp-proxy:d7de8b28392d173db512a558ccc84ead8bece2ae - shareDir: ./common - serviceDir: ./ftp-proxy - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/ftp-proxy.sh - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - - danted: - container_name: qt-test-server-danted - domainname: ${TEST_DOMAIN} - depends_on: - - apache2 - - vsftpd - - ftp-proxy - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-danted:35607f9b790524cf9690c7d12a9a401696b7b6b5 - shareDir: ./common - serviceDir: ./danted - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/danted.sh - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - environment: - - danted_internal=${MACHINE_IP} - - danted_external=${MACHINE_IP} - - danted_auth_internal=${MACHINE_IP} - - danted_auth_external=${MACHINE_IP} - diff --git a/tests/testserver/docker-compose-for-windows.yml b/tests/testserver/docker-compose-for-windows.yml deleted file mode 100644 index c5348e27b6..0000000000 --- a/tests/testserver/docker-compose-for-windows.yml +++ /dev/null @@ -1,113 +0,0 @@ -version: '3.4' - -# 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 tags of test server images. -# For example: -# REPOSITORY TAG -# qt-test-server-apache2 537fe302f61851d1663f41495230d8e3554a4a13 - -services: - apache2: - container_name: qt-test-server-apache2 - domainname: ${TEST_DOMAIN} - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-apache2:537fe302f61851d1663f41495230d8e3554a4a13 - shareDir: ./common - serviceDir: ./apache2 - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: [service/ssl.sh, service/apache2.sh] - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - environment: - - test_cert="qt-test-server-host-network-cacert.pem" - - squid: - container_name: qt-test-server-squid - domainname: ${TEST_DOMAIN} - depends_on: - - apache2 - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-squid:9c32f41b19aca3d778733c4d8fb0ecc5955e893c - shareDir: ./common - serviceDir: ./squid - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/squid.sh - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - - vsftpd: - container_name: qt-test-server-vsftpd - domainname: ${TEST_DOMAIN} - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-vsftpd:f3a9c8d793a77cc007c0e4e481bec01f9e3eeb7e - shareDir: ./common - serviceDir: ./vsftpd - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/vsftpd.sh - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - - ftp-proxy: - container_name: qt-test-server-ftp-proxy - domainname: ${TEST_DOMAIN} - depends_on: - - vsftpd - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-ftp-proxy:d7de8b28392d173db512a558ccc84ead8bece2ae - shareDir: ./common - serviceDir: ./ftp-proxy - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/ftp-proxy.sh - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - - danted: - container_name: qt-test-server-danted - domainname: ${TEST_DOMAIN} - depends_on: - - apache2 - - vsftpd - - ftp-proxy - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-danted:35607f9b790524cf9690c7d12a9a401696b7b6b5 - shareDir: ./common - serviceDir: ./danted - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/danted.sh - network_mode: "host" - extra_hosts: - - "qt-test-server.${TEST_DOMAIN}:${MACHINE_IP}" - environment: - - danted_internal=${MACHINE_IP} - - danted_external=${MACHINE_IP} - - danted_auth_internal=${MACHINE_IP} - - danted_auth_external=${MACHINE_IP} - diff --git a/tests/testserver/docker-compose-host-network.yml b/tests/testserver/docker-compose-host-network.yml new file mode 100644 index 0000000000..4b2e1ebdab --- /dev/null +++ b/tests/testserver/docker-compose-host-network.yml @@ -0,0 +1,102 @@ +version: '2.1' + +# 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 tags of test server images. +# For example: +# REPOSITORY TAG +# qt-test-server-apache2 537fe302f61851d1663f41495230d8e3554a4a13 + +services: + apache2: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-apache2 + hostname: ${HOST_NAME:-apache2} + build: + context: . + args: + provisioningImage: qt-test-server-apache2:537fe302f61851d1663f41495230d8e3554a4a13 + shareDir: ./common + serviceDir: ./apache2 + entrypoint: service/startup.sh + command: [service/ssl.sh, service/apache2.sh] + environment: + - test_cert="qt-test-server-host-network-cacert.pem" + + squid: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-squid + hostname: ${HOST_NAME:-squid} + depends_on: + - apache2 + build: + context: . + args: + provisioningImage: qt-test-server-squid:9c32f41b19aca3d778733c4d8fb0ecc5955e893c + shareDir: ./common + serviceDir: ./squid + entrypoint: service/startup.sh + command: service/squid.sh + + vsftpd: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-vsftpd + hostname: ${HOST_NAME:-vsftpd} + build: + context: . + args: + provisioningImage: qt-test-server-vsftpd:f3a9c8d793a77cc007c0e4e481bec01f9e3eeb7e + shareDir: ./common + serviceDir: ./vsftpd + entrypoint: service/startup.sh + command: service/vsftpd.sh + + ftp-proxy: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-ftp-proxy + hostname: ${HOST_NAME:-ftp-proxy} + depends_on: + - vsftpd + build: + context: . + args: + provisioningImage: qt-test-server-ftp-proxy:d7de8b28392d173db512a558ccc84ead8bece2ae + shareDir: ./common + serviceDir: ./ftp-proxy + entrypoint: service/startup.sh + command: service/ftp-proxy.sh + + danted: + extends: + file: ${SHARED_DATA}/docker-compose-common.yml + service: ${SHARED_SERVICE} + container_name: qt-test-server-danted + hostname: ${HOST_NAME:-danted} + depends_on: + - apache2 + - vsftpd + - ftp-proxy + build: + context: . + args: + provisioningImage: qt-test-server-danted:35607f9b790524cf9690c7d12a9a401696b7b6b5 + shareDir: ./common + serviceDir: ./danted + entrypoint: service/startup.sh + command: service/danted.sh + environment: + - danted_internal=${MACHINE_IP} + - danted_external=${MACHINE_IP} + - danted_auth_internal=${MACHINE_IP} + - danted_auth_external=${MACHINE_IP} diff --git a/tests/testserver/docker-compose.yml b/tests/testserver/docker-compose.yml deleted file mode 100644 index 75e8a0fea2..0000000000 --- a/tests/testserver/docker-compose.yml +++ /dev/null @@ -1,157 +0,0 @@ -version: '3.4' - -# 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 -# qt-test-server-apache2 537fe302f61851d1663f41495230d8e3554a4a13 - -services: - apache2: - container_name: qt-test-server-apache2 - domainname: ${TEST_DOMAIN} - hostname: apache2 - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-apache2:537fe302f61851d1663f41495230d8e3554a4a13 - shareDir: ./common - serviceDir: ./apache2 - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: [service/ssl.sh, service/apache2.sh] - - squid: - container_name: qt-test-server-squid - domainname: ${TEST_DOMAIN} - hostname: squid - depends_on: - - apache2 - external_links: - - apache2:apache2.${TEST_DOMAIN} - - cyrus:cyrus.${TEST_DOMAIN} - - iptables:iptables.${TEST_DOMAIN} - - vsftpd:vsftpd.${TEST_DOMAIN} - - echo:echo.${TEST_DOMAIN} - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-squid:9c32f41b19aca3d778733c4d8fb0ecc5955e893c - shareDir: ./common - serviceDir: ./squid - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/squid.sh - - vsftpd: - container_name: qt-test-server-vsftpd - domainname: ${TEST_DOMAIN} - hostname: vsftpd - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-vsftpd:f3a9c8d793a77cc007c0e4e481bec01f9e3eeb7e - shareDir: ./common - serviceDir: ./vsftpd - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/vsftpd.sh - - ftp-proxy: - container_name: qt-test-server-ftp-proxy - domainname: ${TEST_DOMAIN} - hostname: ftp-proxy - depends_on: - - vsftpd - external_links: - - vsftpd:vsftpd.${TEST_DOMAIN} - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-ftp-proxy:d7de8b28392d173db512a558ccc84ead8bece2ae - shareDir: ./common - serviceDir: ./ftp-proxy - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/ftp-proxy.sh - - danted: - container_name: qt-test-server-danted - domainname: ${TEST_DOMAIN} - hostname: danted - depends_on: - - apache2 - - vsftpd - - ftp-proxy - external_links: - - apache2:apache2.${TEST_DOMAIN} - - vsftpd:vsftpd.${TEST_DOMAIN} - - ftp-proxy:ftp-proxy.${TEST_DOMAIN} - - cyrus:cyrus.${TEST_DOMAIN} - - echo:echo.${TEST_DOMAIN} - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-danted:35607f9b790524cf9690c7d12a9a401696b7b6b5 - shareDir: ./common - serviceDir: ./danted - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/danted.sh - - cyrus: - container_name: qt-test-server-cyrus - domainname: ${TEST_DOMAIN} - hostname: cyrus - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-cyrus:c8d72754abc0e501afd624ce838e4df35505abc9 - shareDir: ./common - serviceDir: ./cyrus - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: [service/ssl.sh, service/cyrus.sh] - - iptables: - container_name: qt-test-server-iptables - domainname: ${TEST_DOMAIN} - hostname: iptables - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-iptables:cb7a8bd6d28602085a88c8ced7d67e28e75781e2 - shareDir: ./common - serviceDir: ./iptables - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/iptables.sh - cap_add: - - NET_ADMIN - - NET_RAW - - echo: - container_name: qt-test-server-echo - domainname: ${TEST_DOMAIN} - hostname: echo - build: - context: . - dockerfile: ${SHARED_DATA}/Dockerfile - args: - provisioningImage: qt-test-server-echo:b29ad409e746a834c1055fd0f7a55fd5056da6ea - shareDir: ./common - serviceDir: ./echo - test_domain: ${TEST_DOMAIN} - entrypoint: service/startup.sh - command: service/echo.sh -- cgit v1.2.3