version: '2.4' services: test: build: context: . args: PHP_VERSION: ${PHP_VERSION:-8.1} depends_on: mysql: condition: service_healthy postgres: condition: service_healthy redis: condition: service_healthy # mssql: # condition: service_healthy volumes: - .:/var/www/html:delegated environment: DOCKER: 1 DB_PASSWORD: password DB_USERNAME: root DB_DATABASE: main TENANCY_TEST_REDIS_HOST: redis TENANCY_TEST_MYSQL_HOST: mysql TENANCY_TEST_PGSQL_HOST: postgres TENANCY_TEST_SQLSRV_HOST: mssql TENANCY_TEST_SQLSRV_USERNAME: sa TENANCY_TEST_SQLSRV_PASSWORD: P@ssword stdin_open: true tty: true mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: main MYSQL_USER: user # redundant MYSQL_PASSWORD: password healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] timeout: 10s retries: 10 mysql2: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: main MYSQL_USER: user # redundant MYSQL_PASSWORD: password healthcheck: test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] timeout: 10s retries: 10 postgres: image: postgres:11 environment: POSTGRES_PASSWORD: password POSTGRES_USER: root # superuser name POSTGRES_DB: main healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 redis: image: redis:alpine healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 1s timeout: 3s retries: 30 mssql: image: mcr.microsoft.com/mssql/server:2019-latest ports: - 1433:1433 environment: - ACCEPT_EULA=Y - SA_PASSWORD=P@ssword # todo reuse values from env above healthcheck: test: /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P P@ssword -Q "SELECT 1" -b -o /dev/null interval: 10s timeout: 10s retries: 10