version: '2.4' services: test: build: context: . args: PHP_VERSION: ${PHP_VERSION:-8.2} 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:latest' ports: - '${POSTGRES_PORT:-5432}' environment: POSTGRES_DB: main POSTGRES_USER: '${POSTGRES_USER:-postgres}' POSTGRES_PASSWORD: '${POSTGRES_PASSWORD:-postgres}' healthcheck: test: - CMD - pg_isready - '-q' - '-d' - '${DB_DATABASE}' - '-U' - '${DB_USERNAME}' retries: 3 timeout: 5s 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