# Docker Compose for local development and testing version: '3.8' services: app: build: context: . dockerfile: Dockerfile.basic ports: - "8080:80" environment: - APP_ENV=local - APP_DEBUG=true - APP_KEY=base64:your-app-key-here - DB_HOST=mysql - DB_DATABASE=merchbay - DB_USERNAME=laravel_user - DB_PASSWORD=secret - CACHE_DRIVER=file - SESSION_DRIVER=file - REDIS_HOST=redis - QUEUE_DRIVER=sync - PAYPAL_MODE=sandbox - PAYPAL_SANDBOX_CLIENT_ID=your-sandbox-client-id - PAYPAL_SANDBOX_SECRET=your-sandbox-secret - MAIL_DRIVER=log volumes: - ./storage:/var/www/html/storage - ./bootstrap/cache:/var/www/html/bootstrap/cache depends_on: - mysql - redis networks: - app-network mysql: image: mysql:8.0 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=merchbay - MYSQL_USER=laravel_user - MYSQL_PASSWORD=secret ports: - "3306:3306" volumes: - mysql_data:/var/lib/mysql networks: - app-network redis: image: redis:7-alpine ports: - "6379:6379" networks: - app-network phpmyadmin: image: phpmyadmin/phpmyadmin environment: - PMA_HOST=mysql - PMA_USER=root - PMA_PASSWORD=root ports: - "8081:80" depends_on: - mysql networks: - app-network volumes: mysql_data: networks: app-network: driver: bridge