version: '3.8' services: web: image: nginx:1.21-alpine container_name: toby-web working_dir: /application volumes: - ./docker/dev/nginx/nginx.conf:/etc/nginx/conf.d/default.conf - .:/application networks: - toby-dev ports: - ${EXTERNAL_WEBSERVER_PORT:-80}:80 restart: unless-stopped depends_on: - php - database php: build: context: docker/dev/php args: INSTALL_XDEBUG: ${DOCKER_INSTALL_XDEBUG:-false} container_name: toby-php working_dir: /application user: ${CURRENT_UID:-1000} volumes: - .:/application - ./docker/dev/php/php.ini:/usr/local/etc/php/conf.d/php.ini networks: - toby-dev extra_hosts: - host.docker.internal:host-gateway restart: unless-stopped database: image: mysql:8.0 container_name: toby-db-dev environment: - MYSQL_ROOT_PASSWORD=${DOCKER_DEV_DB_ROOT_PASSWORD} - MYSQL_DATABASE=${DOCKER_DEV_DB_DATABASE} - MYSQL_USER=${DOCKER_DEV_DB_USERNAME} - MYSQL_PASSWORD=${DOCKER_DEV_DB_PASSWORD} ports: - ${DOCKER_DEV_DB_EXTERNAL_PORT:-3306}:3306 volumes: - toby-mysql-data:/var/lib/mysql networks: - toby-dev restart: unless-stopped database-test: image: mysql:8.0 container_name: toby-db-test environment: - MYSQL_ROOT_PASSWORD=${DOCKER_TEST_DB_ROOT_PASSWORD} - MYSQL_DATABASE=${DOCKER_TEST_DB_DATABASE} - MYSQL_USER=${DOCKER_TEST_DB_USERNAME} - MYSQL_PASSWORD=${DOCKER_TEST_DB_PASSWORD} ports: - ${DOCKER_TEST_DB_EXTERNAL_PORT:-3307}:3306 networks: - toby-dev restart: unless-stopped node: image: node:17.2.0-alpine3.14 container_name: toby-node working_dir: /application volumes: - .:/application networks: - toby-dev restart: unless-stopped mailhog: image: mailhog/mailhog:v1.0.1 container_name: toby-mailhog ports: - ${MAIL_PORT}:1025 - ${MAILHOG_DASHBOARD_PORT}:8025 networks: - toby-dev restart: unless-stopped selenium: image: selenium/standalone-chrome container_name: toby-selenium volumes: - /dev/shm:/dev/shm networks: - toby-dev networks: toby-dev: driver: bridge volumes: toby-mysql-data: name: toby-mysql-data