services:
  nginx:
    extends:
      file: docker-compose.base.yml
      service: nginx
    networks:
      default:
        aliases:
          - someproject.local.wpstudio.ru
    depends_on:
      - php74
      - php81
  php74:
    extends:
      file: docker-compose.base.yml
      service: php
    build:
      dockerfile: php74.Dockerfile
  php81:
    extends:
      file: docker-compose.base.yml
      service: php
    build:
      dockerfile: php81.Dockerfile
  php82:
    extends:
      file: docker-compose.base.yml
      service: php
    build:
      dockerfile: php82.Dockerfile
    volumes:
  workspace74:
    extends:
      file: docker-compose.base.yml
      service: workspace
    build:
      dockerfile: workspace74.Dockerfile
  workspace81:
    extends:
      file: docker-compose.base.yml
      service: workspace
    build:
      dockerfile: workspace81.Dockerfile
  workspace82:
    extends:
      file: docker-compose.base.yml
      service: workspace
    build:
      dockerfile: workspace82.Dockerfile
  db:
    extends:
      file: docker-compose.base.yml
      service: db
  pma:
    extends:
      file: docker-compose.base.yml
      service: pma
  inbucket:
    extends:
      file: docker-compose.base.yml
      service: inbucket
  dnsmasq:
    restart: always
    build:
      context: ./dockerfiles/dnsmasq
    volumes:
      - ./config/dnsmasq/dnsmasq.conf:/etc/dnsmasq.conf
    cap_add:
      - NET_ADMIN # @see https://man7.org/linux/man-pages/man7/capabilities.7.html

volumes:
  database:

secrets:
  user_ssh_key:
    file: ~/.ssh/id_rsa
  user_known_hosts:
    file: ~/.ssh/known_hosts
  composer_auth:
    file: ~/.config/composer/auth.json