services: postgres: image: postgres:17 profiles: ["postgres"] environment: POSTGRES_DB: boosapi POSTGRES_USER: boosapi POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD} volumes: - boosapi-postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U boosapi -d boosapi"] interval: 5s timeout: 3s retries: 20 mysql: image: mysql:8.0 profiles: ["mysql"] environment: MYSQL_DATABASE: boosapi MYSQL_USER: boosapi MYSQL_PASSWORD: ${MYSQL_PASSWORD:?set MYSQL_PASSWORD} MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:?set MYSQL_ROOT_PASSWORD} command: - "--character-set-server=utf8mb4" - "--collation-server=utf8mb4_unicode_ci" - "--log-bin-trust-function-creators=1" volumes: - boosapi-mysql:/var/lib/mysql healthcheck: test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD"] interval: 5s timeout: 3s retries: 30 mariadb: image: mariadb:10.6 profiles: ["mariadb"] environment: MARIADB_DATABASE: boosapi MARIADB_USER: boosapi MARIADB_PASSWORD: ${MARIADB_PASSWORD:?set MARIADB_PASSWORD} MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:?set MARIADB_ROOT_PASSWORD} command: ["--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci"] volumes: - boosapi-mariadb:/var/lib/mysql healthcheck: test: ["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized"] interval: 5s timeout: 3s retries: 30 redis: image: redis:7-alpine profiles: ["redis"] command: ["redis-server", "--appendonly", "yes"] volumes: - boosapi-redis:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 20 volumes: boosapi-postgres: boosapi-mysql: boosapi-mariadb: boosapi-redis: