services:
    laravel.test:
        build:
            context: "./vendor/laravel/sail/runtimes/8.4"
            dockerfile: Dockerfile
            args:
                WWWGROUP: "${WWWGROUP}"
        image: "sail-8.4/app"
        extra_hosts:
            - "host.docker.internal:host-gateway"
        ports:
            - "${APP_PORT:-80}:80"
            - "${VITE_PORT:-5173}:${VITE_PORT:-5173}"
        environment:
            WWWUSER: "${WWWUSER}"
            LARAVEL_SAIL: 1
            XDEBUG_MODE: "${SAIL_XDEBUG_MODE:-off}"
            XDEBUG_CONFIG: "${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}"
            IGNITION_LOCAL_SITES_PATH: "${PWD}"
        volumes:
            - ".:/var/www/html"
        networks:
            - sail
        depends_on:
            - mysql
            - meilisearch
    mysql:
        image: "mysql/mysql-server:8.0"
        ports:
            - "${FORWARD_DB_PORT:-3306}:3306"
        environment:
            MYSQL_ROOT_PASSWORD: "${DB_PASSWORD}"
            MYSQL_ROOT_HOST: "%"
            MYSQL_DATABASE: "${DB_DATABASE}"
            MYSQL_USER: "${DB_USERNAME}"
            MYSQL_PASSWORD: "${DB_PASSWORD}"
            MYSQL_ALLOW_EMPTY_PASSWORD: 1
            MYSQL_EXTRA_OPTIONS: "${MYSQL_EXTRA_OPTIONS:-}"
        volumes:
            - "sail-mysql:/var/lib/mysql"
            - "./vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh"
        networks:
            - sail
        healthcheck:
            test:
                - CMD
                - mysqladmin
                - ping
                - "-p${DB_PASSWORD}"
            retries: 3
            timeout: 5s
    phpmyadmin:
        image: phpmyadmin:latest
        ports:
            - "8888:80"
        environment:
            PMA_HOST: mysql
            PMA_PORT: 3306
        networks:
            - sail
        depends_on:
            - mysql
    meilisearch:
        image: "getmeili/meilisearch:v1.7"
        ports:
            - "${MEILISEARCH_PORT:-7700}:7700"
        environment:
            MEILI_MASTER_KEY: "${MEILISEARCH_KEY:-masterKey}"
            MEILI_ENV: "development"
        volumes:
            - "sail-meilisearch:/meili_data"
        networks:
            - sail

networks:
    sail:
        driver: bridge
volumes:
    sail-mysql:
        driver: local
    sail-meilisearch:
        driver: local
