services:
  mariadb:  # Определение сервиса
    image: bitnami/mariadb:11.4  # Имя образа docker и его версия (предпочтиельно указывать версию явно, вместо использования latest) 
    container_name: mariadb  # Имя контейнера
    environment:  # Переменные окружения
      - MARIADB_USER=${MARIADB_USER}  # Имя пользователя
      - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}  # Пароль для пользователя root
      - MARIADB_PASSWORD=${MARIADB_PASSWORD}  # Пароль для пользователя
      - MARIADB_DATABASE=${MARIADB_DATABASE}  # Имя базы данных
    volumes:  # Настройка volumes для хранения данных
      - moodle_db_data:/bitnami/mariadb  # Хранение данных в volume moodle_db_data

  # Далее комментарии идентичны
  wordpress_db:
    image: mariadb:11.4
    container_name: wordpress_db
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - wordpress_db_data:/var/lib/mysql  # Хранение данных в volume wordpress_db_data

  moodle:
    image: bitnami/moodle:4.4
    container_name: moodle
    environment:
      - MOODLE_DATABASE_HOST=mariadb  # Указание хоста базы данных
      - MOODLE_DATABASE_PORT_NUMBER=3306
      - MOODLE_DATABASE_NAME=${MARIADB_DATABASE}
      - MOODLE_DATABASE_USER=${MARIADB_USER}
      - MOODLE_DATABASE_PASSWORD=${MARIADB_PASSWORD}
    volumes:
      - moodle_data:/bitnami/moodle  # Хранение данных в volume moodle_data
      - moodledata_data:/bitnami/moodledata  # Хранение данных (moodledata) в отдельном volume
    depends_on:  # Зависимость от сервиса mariadb. Данный сервис не запустится, пока не запустится mariadb
      - mariadb
    ports:  # Проброс порта для доступа
      - "${MOODLE_PORT}:8080"

  wordpress:
    image: wordpress:6 
    container_name: wordpress
    environment:
      WORDPRESS_DB_HOST: wordpress_db 
      WORDPRESS_DB_USER: ${MYSQL_USER} 
      WORDPRESS_DB_PASSWORD: ${MYSQL_PASSWORD} 
      WORDPRESS_DB_NAME: ${MYSQL_DATABASE}
    volumes:
      - wordpress_data:/var/www/html  # Хранение данных в volume wordpress_data
    depends_on:  # Зависимость от сервиса wordpress_db, Данный сервис не запустится, пока не запустится wordpress_db
      - wordpress_db
    ports:
      - "${WORDPRESS_PORT}:80" 

volumes:  # Определение volumes для хранения данных
  moodle_db_data: 
  wordpress_db_data:
  moodle_data:
  moodledata_data:
  wordpress_data: