services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: apache_php
    ports:
      - "80:80"
    volumes:
      - ./web:/var/www/html
      - ./apache/beesafe.conf:/etc/apache2/sites-available/beesafe.conf
    depends_on:
      - db
      - dns
    networks:
      - backend
    restart: unless-stopped

  db:
    image: mysql:8.0
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootclassroom
      MYSQL_DATABASE: beesafe_db
    volumes:
      - db_data:/var/lib/mysql
      - ./sql:/docker-entrypoint-initdb.d
    networks:
      - backend
    restart: unless-stopped

  dns:
    image: internetsystemsconsortium/bind9:9.18
    container_name: bind9
    ports:
      - "53:53/tcp"
      - "53:53/udp"
    volumes:
      - ./bind9/etc:/etc/bind
      - ./bind9/cache:/var/cache/bind
      - ./bind9/lib:/var/lib/bind
      - ./bind9/log:/var/log
    command: ["-g"]
    networks:
      - backend
    restart: unless-stopped

networks:
  backend:
    driver: bridge

volumes:
  db_data:
