services: app: build: context: . dockerfile: Dockerfile container_name: laravel-app restart: unless-stopped working_dir: /var/www/html volumes: - ./:/var/www/html:Z ports: - "8080:80" networks: - laravel depends_on: - db - redis - mailpit db: image: docker.io/library/mysql:8.0 container_name: laravel-db restart: unless-stopped environment: MYSQL_DATABASE: laravel MYSQL_ROOT_PASSWORD: root MYSQL_USER: laravel MYSQL_PASSWORD: secret volumes: - dbdata:/var/lib/mysql:Z - ./docker/mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:Z ports: - "3306:3306" networks: - laravel redis: image: docker.io/library/redis:alpine container_name: laravel-redis restart: unless-stopped ports: - "6379:6379" networks: - laravel mailpit: image: docker.io/axllent/mailpit:latest container_name: laravel-mailpit restart: unless-stopped ports: - "8025:8025" # Web UI - "1025:1025" # SMTP server networks: - laravel networks: laravel: driver: bridge volumes: dbdata: driver: local