| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- ## this is a docker compose file used to test all scenarios
- ## do not use it in production
- x-shared:
- speedtest-service: &speedtest-service
- environment:
- - PASSWORD=gimmeTheStats1337
- - [email protected]
- - ENABLE_ID_OBFUSCATION=true
- - MODE=standalone
- - REDACT_IP_ADDRESSES=true
- - TELEMETRY=true
- services:
- ###################### POSTGRESQL ################################
- pg:
- image: postgres:alpine
- environment:
- POSTGRES_PASSWORD: Not4SecureProduction
- POSTGRES_USER: librespeed
- volumes:
- # mount init script from source to create database tables
- - ../../results/telemetry_postgresql.sql:/docker-entrypoint-initdb.d/01-init.sql
- speedtest-debian-pg:
- build:
- context: ../..
- dockerfile: Dockerfile
- environment: &env_vars_pg
- - PASSWORD=gimmeTheStats1337
- - DB_HOSTNAME=pg
- - DB_NAME=librespeed
- - DB_PASSWORD=Not4SecureProduction
- - DB_TYPE=postgresql
- - DB_USERNAME=librespeed
- - [email protected]
- - ENABLE_ID_OBFUSCATION=true
- - MODE=standalone
- - REDACT_IP_ADDRESSES=true
- - TELEMETRY=true
- ports:
- - 9123:8080
- speedtest-alpine-pg:
- build:
- context: ../..
- dockerfile: Dockerfile.alpine
- environment: *env_vars_pg
- ports:
- - 9124:8080
- ####################### MYSQL ##############################
- mysql:
- image: mysql:lts
- environment:
- MYSQL_ROOT_PASSWORD: Not4SecureProduction
- MYSQL_USER: librespeed
- MYSQL_PASSWORD: Not4SecureProduction
- MYSQL_DATABASE: librespeed
- volumes:
- # mount init script from source to create database tables
- - ../../results/telemetry_mysql.sql:/docker-entrypoint-initdb.d/01-init.sql
- speedtest-debian-mysql:
- # check at http://localhost:9125/results/sanitycheck.php
- build:
- context: ../..
- dockerfile: Dockerfile
- environment: &env_vars_mysql
- - PASSWORD=gimmeTheStats1337
- - DB_HOSTNAME=mysql
- - DB_NAME=librespeed
- - DB_PASSWORD=Not4SecureProduction
- - DB_TYPE=mysql
- - DB_USERNAME=librespeed
- - [email protected]
- - ENABLE_ID_OBFUSCATION=true
- - MODE=standalone
- - REDACT_IP_ADDRESSES=true
- - TELEMETRY=true
- ports:
- - 9125:8080
- speedtest-alpine-mysql:
- build:
- context: ../..
- dockerfile: Dockerfile.alpine
- environment: *env_vars_mysql
- ports:
- - 9126:8080
- ####################### MSSQL ##############################
- mssql:
- image: mcr.microsoft.com/mssql/server:2022-latest
- environment:
- - ACCEPT_EULA=Y
- - SA_PASSWORD=Not4SecureProduction1337
- - MSSQL_PID=Express
- healthcheck:
- test:
- ["CMD-SHELL", "/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P $$SA_PASSWORD -C -Q 'SELECT 1' || exit 1"]
- interval: 10s
- retries: 5
- start_period: 30s
- mssql-init:
- image: mcr.microsoft.com/mssql/server:2022-latest
- depends_on:
- mssql:
- condition: service_healthy
- environment:
- - SA_PASSWORD=Not4SecureProduction1337
- volumes:
- - ../../results/telemetry_mssql.sql:/docker-entrypoint-initdb.d/01-init.sql:ro
- command: >
- bash -c '
- echo "Waiting for MSSQL to be ready...";
- until /opt/mssql-tools18/bin/sqlcmd -S mssql -U sa -P "$$SA_PASSWORD" -C -Q "SELECT 1"; do
- sleep 1;
- done;
- echo "Running init scripts...";
- for f in /docker-entrypoint-initdb.d/*.sql; do
- echo "Executing $$f...";
- /opt/mssql-tools18/bin/sqlcmd -S mssql -U sa -P "$$SA_PASSWORD" -C -i "$$f";
- done;
- echo "Initialization complete!";
- '
- speedtest-debian-mssql:
- build:
- context: ../..
- dockerfile: Dockerfile
- environment: &env_vars_mssql
- - PASSWORD=gimmeTheStats1337
- - DB_HOSTNAME=mssql
- - DB_NAME=librespeed
- - DB_PASSWORD=Not4SecureProduction1337
- - DB_TYPE=mssql
- - DB_USERNAME=sa
- - [email protected]
- - ENABLE_ID_OBFUSCATION=true
- - MODE=standalone
- - REDACT_IP_ADDRESSES=true
- - TELEMETRY=true
- ports:
- - 9130:8080
- speedtest-alpine-mssql:
- build:
- context: ../..
- dockerfile: Dockerfile.alpine
- environment: *env_vars_mssql
- ports:
- - 9131:8080
- ################ SQLITE ####################################
- speedtest-debian-sqlite:
- # check at http://localhost:9125/results/sanitycheck.php
- build:
- context: ../..
- dockerfile: Dockerfile
- environment: &env_vars_sqlite
- - PASSWORD=gimmeTheStats1337
- - [email protected]
- - ENABLE_ID_OBFUSCATION=true
- - MODE=standalone
- - REDACT_IP_ADDRESSES=true
- - TELEMETRY=true
- ports:
- - 9127:8080
- speedtest-alpine-sqlite:
- build:
- context: ../..
- dockerfile: Dockerfile.alpine
- environment: *env_vars_sqlite
- ports:
- - 9128:8080
- speedtest-alpine-sqlite-dual:
- <<: *speedtest-service
- build:
- context: ../..
- dockerfile: Dockerfile.alpine
- environment:
- - MODE=dual
- volumes:
- - ./servers.json:/servers.json:ro
- ports:
- - 9129:8080
- ############## TEST CONTAINER ###############################################################
- test-container:
- image: alpine
- depends_on:
- - pg
- - mysql
- - mssql-init
- - speedtest-alpine-mysql
- - speedtest-alpine-pg
- - speedtest-alpine-mssql
- volumes:
- - ./test-script.sh:/test-script.sh
- command:
- - sh
- - /test-script.sh
|