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: - pgsql - redis - mailpit horizon: 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' environment: WWWUSER: '${WWWUSER}' LARAVEL_SAIL: 1 volumes: - '.:/var/www/html' networks: - sail depends_on: - pgsql - redis command: ['php', '/var/www/html/artisan', 'horizon'] # at least as long as config/horizon.php's supervisor `timeout` (60s) so Docker doesn't # SIGKILL mid-shutdown. stop_grace_period: 65s scheduler: 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' environment: WWWUSER: '${WWWUSER}' LARAVEL_SAIL: 1 volumes: - '.:/var/www/html' networks: - sail depends_on: - pgsql - redis command: ['php', '/var/www/html/artisan', 'schedule:work'] pgsql: platform: 'linux/amd64' # Force x86_64 architecture for Postgres, because they don't support arm64 yet image: 'postgis/postgis:18-master' ports: - '${FORWARD_DB_PORT:-5432}:5432' environment: PGPASSWORD: '${DB_PASSWORD:-secret}' POSTGRES_DB: '${DB_DATABASE}' POSTGRES_USER: '${DB_USERNAME}' POSTGRES_PASSWORD: '${DB_PASSWORD:-secret}' volumes: - 'sail-pgsql:/var/lib/postgresql' - './vendor/laravel/sail/database/pgsql/create-testing-database.sql:/docker-entrypoint-initdb.d/10-create-testing-database.sql' networks: - sail healthcheck: test: - CMD - pg_isready - '-q' - '-d' - '${DB_DATABASE}' - '-U' - '${DB_USERNAME}' 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 wiremock: image: wiremock/wiremock volumes: - './wiremock/__files:/home/wiremock/__files' - './wiremock/mappings:/home/wiremock/mappings' ports: - '8080:8080' networks: - sail networks: sail: driver: bridge volumes: sail-pgsql: driver: local sail-redis: driver: local