services: app: build: context: . target: base dockerfile: Dockerfile.dev container_name: paymenter_app restart: unless-stopped volumes: - ./:/var/www/html ports: - "80:8080" - "5173:5173" networks: - paymenter_network task: build: context: . target: base dockerfile: Dockerfile.dev container_name: paymenter_task command: [ "php", "/var/www/html/artisan", "schedule:run" ] restart: unless-stopped volumes: - ./:/var/www/html stop_signal: SIGTERM healthcheck: # This is our native healthcheck script for the scheduler test: [ "CMD", "healthcheck-schedule" ] start_period: 10s networks: - paymenter_network queue: build: context: . target: base dockerfile: Dockerfile.dev container_name: paymenter_queue command: ["php", "/var/www/html/artisan", "queue:work", "--tries=3"] restart: unless-stopped volumes: - ./:/var/www/html stop_signal: SIGTERM # Set this for graceful shutdown if you're using fpm-apache or fpm-nginx healthcheck: # This is our native healthcheck script for the queue test: ["CMD", "healthcheck-queue"] start_period: 10s networks: - paymenter_network db: image: mariadb:11 # Match the version target the guide container_name: paymenter_db restart: unless-stopped environment: MYSQL_DATABASE: ${DB_DATABASE:-paymenter} MYSQL_USER: ${DB_USERNAME:-paymenter} MYSQL_PASSWORD: ${DB_PASSWORD:-changeme} # Use a strong password MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootchangeme} # Use a strong root password volumes: # Persist database data - paymenter_db_data:/var/lib/mysql command: [ "--character-set-server=utf8mb4", "--collation-server=utf8mb4_unicode_ci" ] networks: - paymenter_network # Redis Service redis: image: redis:alpine container_name: paymenter_redis restart: unless-stopped volumes: # Persist redis data - paymenter_redis_data:/data networks: - paymenter_network phpmyadmin: image: phpmyadmin/phpmyadmin:latest container_name: paymenter_phpmyadmin restart: unless-stopped depends_on: - db environment: PMA_HOST: db MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-rootchangeme} ports: - "8124:80" networks: - paymenter_network # Docker Networks networks: paymenter_network: driver: bridge # Docker Volumes volumes: paymenter_db_data: driver: local paymenter_redis_data: driver: local