services: # определяет сервисы, которые будут запущены
  
  db: # сервис базы данных
    image: mysql:8.0 # Образ MySQL
    container_name: mysql # имя для контейнера
    restart: always
    volumes:
      - ./db_data:/var/lib/postgres # Том для постоянного хранения данных
    ports:
      - "20001:3306" # порт для доступа к MySQL с хоста
    environment:
      MYSQL_DATABASE: lab1 # имя базы данных
      MYSQL_USER: user # имя пользовтеля 
      MYSQL_PASSWORD: password # пароль пользователя
      MYSQL_ROOT_PASSWORD: password # пароль для root

    networks:
      - app-network


  wordpress:
    image: wordpress:latest # образ WordPress
    container_name: wordpress_app
    environment:
      WORDPRESS_DB_HOST: db:3306 # имя хоста базы данных
      WORDPRESS_DB_USER: user # имя пользователя БД
      WORDPRESS_DB_PASSWORD: password # пароль пользователя
      WORDPRESS_DB_NAME: lab1 # имя базы данных
    ports:
      - "20002:80" # порт для доступа к WordPress
    volumes:
      - ./wordpress_data:/var/www/html/wordpress_data # для хранения данных WordPress
    depends_on:
      - db # WordPress запустится после запуска базы данных
    networks:
      - app-network
      

  mediawiki:
    image: mediawiki:latest # образ MediaWiki
    container_name: mediawiki_app
    ports:
      - "20003:80" # порт для доступа к MediaWiki
    volumes:
      - ./mediawiki_data:/var/www/html/mediawiki # для хранения данных MediaWiki
    networks:
      - app-network


networks:
  app-network:
    driver: bridge # общая сеть для контейнеров