# cspell:ignore initdb,meili,mysqladmin,mysqld,wwwgroup,wwwuser services: nginx: image: 'nginx:latest' ports: - '${HTTP_PORT:-8000}:80' - '${SSL_PORT:-443}:443' environment: - SSL_PORT=${SSL_PORT:-443} - APP_SERVICE=${APP_SERVICE:-laravel.test} - SERVER_NAME=${SERVER_NAME:-localhost} - SSL_DOMAIN=${SSL_DOMAIN:-localhost} - SSL_ALT_NAME=${SSL_ALT_NAME:-DNS:localhost} volumes: - 'sail-nginx:/etc/nginx/certs' - './vendor/ryoluo/sail-ssl/nginx/templates:/etc/nginx/templates' - './vendor/ryoluo/sail-ssl/nginx/generate-ssl-cert.sh:/docker-entrypoint.d/99-generate-ssl-cert.sh' depends_on: - ${APP_SERVICE:-laravel.test} networks: - sail 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: - meilisearch - mysql - redis 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 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 redis: image: 'redis:alpine' ports: - '${FORWARD_REDIS_PORT:-6379}:6379' volumes: - 'sail-redis:/data' networks: - sail healthcheck: test: - CMD - redis-cli - ping retries: 3 timeout: 5s mailpit: image: 'axllent/mailpit:latest' ports: - '${FORWARD_MAILPIT_PORT:-1025}:1025' - '${FORWARD_MAILPIT_DASHBOARD_PORT:-8025}:8025' networks: - sail meilisearch: image: 'getmeili/meilisearch:latest' ports: - '${FORWARD_MEILISEARCH_PORT:-7700}:7700' environment: MEILI_NO_ANALYTICS: '${MEILISEARCH_NO_ANALYTICS:-false}' volumes: - 'sail-meilisearch:/meili_data' networks: - sail healthcheck: test: [ "CMD", "wget", "--no-verbose", "--spider", "http://localhost:7700/health" ] retries: 3 timeout: 5s networks: sail: driver: bridge volumes: sail-nginx: driver: local sail-mysql: driver: local sail-redis: driver: local sail-meilisearch: driver: local