version: "3.9" services: php: image: ziadoz/zaphod-php:latest depends_on: - mysql restart: always environment: - APP_ENV - APP_NAME working_dir: /var/www/vhosts/zaphod expose: - 9003 # XDebug volumes: - .:/var/www/vhosts/zaphod networks: - zaphod nginx: image: nginx:latest hostname: zaphod.dev depends_on: - php - mysql restart: always ports: - 80:80 - 443:443 volumes: - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf - .:/var/www/vhosts/zaphod networks: zaphod: aliases: - zaphod.local - zaphod.testing mysql: image: mysql/mysql-server:latest restart: always ports: - 3306:3306 environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_ROOT_HOST=${MYSQL_ROOT_HOST:-%} - MYSQL_DATABASE - MYSQL_HOST - MYSQL_USER - MYSQL_PASSWORD volumes: - ./docker/mysql/mysqld.cnf:/etc/mysql/my.cnf - ./docker/mysql/setup.sql:/docker-entrypoint-initdb.d/setup.sql # - ./storage/mysql:/var/lib/mysql networks: - zaphod mailhog: image: mailhog/mailhog:latest restart: always logging: driver: 'none' ports: - 1025:1025 # SMTP Server - 8025:8025 # Web UI networks: zaphod: aliases: - mail chrome: image: ziadoz/zaphod-chrome:latest hostname: chrome # Ensure ChromeDriver can be reached by other containers. depends_on: - php - nginx - mysql restart: always volumes: - /dev/shm:/dev/shm networks: - zaphod networks: zaphod: