From b4998a9d5d181712270cc5cdb5dd4c50a9f1eec6 Mon Sep 17 00:00:00 2001 From: Alexey Pustovalov Date: Mon, 10 Jun 2024 16:32:50 +0900 Subject: [PATCH] Using Selenium Hub to support different browsers --- .env | 8 +++- compose_additional_components.yaml | 55 ++++++++++++++++++---- compose_databases.yaml | 3 +- docker-compose_v3_alpine_mysql_latest.yaml | 27 +++++++---- docker-compose_v3_alpine_mysql_local.yaml | 27 +++++++---- docker-compose_v3_alpine_pgsql_latest.yaml | 27 +++++++---- docker-compose_v3_alpine_pgsql_local.yaml | 27 +++++++---- docker-compose_v3_centos_mysql_latest.yaml | 27 +++++++---- docker-compose_v3_centos_mysql_local.yaml | 27 +++++++---- docker-compose_v3_centos_pgsql_latest.yaml | 27 +++++++---- docker-compose_v3_centos_pgsql_local.yaml | 27 +++++++---- docker-compose_v3_ol_mysql_latest.yaml | 27 +++++++---- docker-compose_v3_ol_mysql_local.yaml | 27 +++++++---- docker-compose_v3_ol_pgsql_latest.yaml | 27 +++++++---- docker-compose_v3_ol_pgsql_local.yaml | 27 +++++++---- docker-compose_v3_ubuntu_mysql_latest.yaml | 27 +++++++---- docker-compose_v3_ubuntu_mysql_local.yaml | 27 +++++++---- docker-compose_v3_ubuntu_pgsql_latest.yaml | 27 +++++++---- docker-compose_v3_ubuntu_pgsql_local.yaml | 27 +++++++---- 19 files changed, 357 insertions(+), 141 deletions(-) diff --git a/.env b/.env index c36ef45a..a86d82ed 100644 --- a/.env +++ b/.env @@ -32,8 +32,12 @@ POSTGRESQL_IMAGE_TAG=16-alpine ELASTICSEARCH_IMAGE=elasticsearch ELASTICSEARCH_IMAGE_TAG=latest -WEBDRIVER_IMAGE=selenium/standalone-chrome -WEBDRIVER_IMAGE_TAG=latest +WEBDRIVER_IMAGE=selenium/hub +WEBDRIVER_IMAGE_TAG=4.21.0 +WEBDRIVER_CHROME_IMAGE=selenium/node-chrome +WEBDRIVER_CHROME_IMAGE_TAG=125.0 +WEBDRIVER_FIREFOX_IMAGE=selenium/node-firefox +WEBDRIVER_FIREFOX_IMAGE_TAG=126.0 # Expose ports per service ZABBIX_SERVER_PORT=10051 diff --git a/compose_additional_components.yaml b/compose_additional_components.yaml index 21cbf3af..6fc69329 100644 --- a/compose_additional_components.yaml +++ b/compose_additional_components.yaml @@ -1,18 +1,55 @@ services: selenium: image: "${WEBDRIVER_IMAGE}:${WEBDRIVER_IMAGE_TAG}" - restart: "${RESTART_POLICY}" - attach: false - scale: 4 profiles: - - full - - all - shm_size: "2gb" - env_file: - - path: ${ENV_VARS_DIRECTORY}/.env_selenium - required: false + - selenium + - selenium-chrome + - selenium-firefox networks: tools_frontend: aliases: - webdriver + - selenium-hub - selenium + + selenium-chrome: + image: "${WEBDRIVER_CHROME_IMAGE}:${WEBDRIVER_CHROME_IMAGE_TAG}" + restart: "${RESTART_POLICY}" + attach: false + scale: 2 + depends_on: + - selenium + profiles: + - selenium + - selenium-chrome + shm_size: "2gb" + env_file: + - path: ${ENV_VARS_DIRECTORY}/.env_selenium_chrome + required: false + environment: + - SE_EVENT_BUS_HOST=selenium + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + networks: + tools_frontend: + + selenium-firefox: + image: "${WEBDRIVER_FIREFOX_IMAGE}:${WEBDRIVER_FIREFOX_IMAGE_TAG}" + restart: "${RESTART_POLICY}" + attach: false + scale: 2 + depends_on: + - selenium + profiles: + - selenium + - selenium-firefox + shm_size: "2gb" + env_file: + - path: ${ENV_VARS_DIRECTORY}/.env_selenium_firefox + required: false + environment: + - SE_EVENT_BUS_HOST=selenium + - SE_EVENT_BUS_PUBLISH_PORT=4442 + - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 + networks: + tools_frontend: diff --git a/compose_databases.yaml b/compose_databases.yaml index 797b00eb..359a8d68 100644 --- a/compose_databases.yaml +++ b/compose_databases.yaml @@ -77,8 +77,7 @@ services: restart: "${RESTART_POLICY}" attach: false profiles: - - full - - all + - elasticsearch environment: - transport.host=0.0.0.0 - discovery.zen.minimum_master_nodes=1 diff --git a/docker-compose_v3_alpine_mysql_latest.yaml b/docker-compose_v3_alpine_mysql_latest.yaml index d1a84146..35a42509 100644 --- a/docker-compose_v3_alpine_mysql_latest.yaml +++ b/docker-compose_v3_alpine_mysql_latest.yaml @@ -101,15 +101,26 @@ services: file: compose_databases.yaml service: db-data-mysql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_alpine_mysql_local.yaml b/docker-compose_v3_alpine_mysql_local.yaml index 437fe5b4..d263d74d 100644 --- a/docker-compose_v3_alpine_mysql_local.yaml +++ b/docker-compose_v3_alpine_mysql_local.yaml @@ -201,15 +201,26 @@ services: file: compose_databases.yaml service: db-data-mysql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_alpine_pgsql_latest.yaml b/docker-compose_v3_alpine_pgsql_latest.yaml index 0e1916ad..1610986b 100644 --- a/docker-compose_v3_alpine_pgsql_latest.yaml +++ b/docker-compose_v3_alpine_pgsql_latest.yaml @@ -111,15 +111,26 @@ services: file: compose_databases.yaml service: db-data-pgsql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_alpine_pgsql_local.yaml b/docker-compose_v3_alpine_pgsql_local.yaml index 9ee31c34..3f865aae 100644 --- a/docker-compose_v3_alpine_pgsql_local.yaml +++ b/docker-compose_v3_alpine_pgsql_local.yaml @@ -225,15 +225,26 @@ services: file: compose_databases.yaml service: db-data-pgsql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_centos_mysql_latest.yaml b/docker-compose_v3_centos_mysql_latest.yaml index 6011ef5b..63dc0886 100644 --- a/docker-compose_v3_centos_mysql_latest.yaml +++ b/docker-compose_v3_centos_mysql_latest.yaml @@ -101,15 +101,26 @@ services: file: compose_databases.yaml service: db-data-mysql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_centos_mysql_local.yaml b/docker-compose_v3_centos_mysql_local.yaml index 583b9384..a03fa564 100644 --- a/docker-compose_v3_centos_mysql_local.yaml +++ b/docker-compose_v3_centos_mysql_local.yaml @@ -202,15 +202,26 @@ services: file: compose_databases.yaml service: db-data-mysql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_centos_pgsql_latest.yaml b/docker-compose_v3_centos_pgsql_latest.yaml index 337e0523..679bcd4f 100644 --- a/docker-compose_v3_centos_pgsql_latest.yaml +++ b/docker-compose_v3_centos_pgsql_latest.yaml @@ -111,15 +111,26 @@ services: file: compose_databases.yaml service: db-data-pgsql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_centos_pgsql_local.yaml b/docker-compose_v3_centos_pgsql_local.yaml index 4e636dde..4570dae8 100644 --- a/docker-compose_v3_centos_pgsql_local.yaml +++ b/docker-compose_v3_centos_pgsql_local.yaml @@ -225,15 +225,26 @@ services: file: compose_databases.yaml service: db-data-pgsql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_ol_mysql_latest.yaml b/docker-compose_v3_ol_mysql_latest.yaml index b076ca53..772e8f56 100644 --- a/docker-compose_v3_ol_mysql_latest.yaml +++ b/docker-compose_v3_ol_mysql_latest.yaml @@ -101,15 +101,26 @@ services: file: compose_databases.yaml service: db-data-mysql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_ol_mysql_local.yaml b/docker-compose_v3_ol_mysql_local.yaml index 9934cdd6..d1823b37 100644 --- a/docker-compose_v3_ol_mysql_local.yaml +++ b/docker-compose_v3_ol_mysql_local.yaml @@ -202,15 +202,26 @@ services: file: compose_databases.yaml service: db-data-mysql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_ol_pgsql_latest.yaml b/docker-compose_v3_ol_pgsql_latest.yaml index ed82f68b..730b227d 100644 --- a/docker-compose_v3_ol_pgsql_latest.yaml +++ b/docker-compose_v3_ol_pgsql_latest.yaml @@ -111,15 +111,26 @@ services: file: compose_databases.yaml service: db-data-pgsql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_ol_pgsql_local.yaml b/docker-compose_v3_ol_pgsql_local.yaml index 105b60fa..756e60e8 100644 --- a/docker-compose_v3_ol_pgsql_local.yaml +++ b/docker-compose_v3_ol_pgsql_local.yaml @@ -225,15 +225,26 @@ services: file: compose_databases.yaml service: db-data-pgsql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_ubuntu_mysql_latest.yaml b/docker-compose_v3_ubuntu_mysql_latest.yaml index 6e4b9323..39c5409f 100644 --- a/docker-compose_v3_ubuntu_mysql_latest.yaml +++ b/docker-compose_v3_ubuntu_mysql_latest.yaml @@ -89,15 +89,26 @@ services: file: compose_databases.yaml service: db-data-mysql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_ubuntu_mysql_local.yaml b/docker-compose_v3_ubuntu_mysql_local.yaml index 1f447e7b..1d4163e8 100644 --- a/docker-compose_v3_ubuntu_mysql_local.yaml +++ b/docker-compose_v3_ubuntu_mysql_local.yaml @@ -190,15 +190,26 @@ services: file: compose_databases.yaml service: db-data-mysql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_ubuntu_pgsql_latest.yaml b/docker-compose_v3_ubuntu_pgsql_latest.yaml index 3f580e2a..6f120797 100644 --- a/docker-compose_v3_ubuntu_pgsql_latest.yaml +++ b/docker-compose_v3_ubuntu_pgsql_latest.yaml @@ -99,15 +99,26 @@ services: file: compose_databases.yaml service: db-data-pgsql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: diff --git a/docker-compose_v3_ubuntu_pgsql_local.yaml b/docker-compose_v3_ubuntu_pgsql_local.yaml index c293f9af..61d43231 100644 --- a/docker-compose_v3_ubuntu_pgsql_local.yaml +++ b/docker-compose_v3_ubuntu_pgsql_local.yaml @@ -213,15 +213,26 @@ services: file: compose_databases.yaml service: db-data-pgsql -# elasticsearch: -# extends: -# file: compose_databases.yaml -# service: elasticsearch + elasticsearch: + extends: + file: compose_databases.yaml + service: elasticsearch -# selenium: -# extends: -# file: compose_additional_components.yaml -# service: selenium + selenium: + extends: + file: compose_additional_components.yaml + service: selenium + + selenium-chrome: + platform: linux/amd64 + extends: + file: compose_additional_components.yaml + service: selenium-chrome + + selenium-firefox: + extends: + file: compose_additional_components.yaml + service: selenium-firefox networks: frontend: