version: '3.1' # Версия Docker Compose файла

services: # Запускаемые сервисы
  MediaWiki:
    container_name: wiki # Имя контейнера
    image: mediawiki:latest # Образ
    restart: always # Автоматический перезапуск контейнера
    ports: 
      - 8080:80 # Проброшенные порты с хоста внутрь контейнера
    environment: # Переменные окружения для конфигурации базы данных
      MEDIAWIKI_DB_MYSQL: database
      MEDIAWIKI_DB_DATABASE: mediawiki
      MEDIAWIKI_DB_USERNAME: mediawiki
      MEDIAWIKI_DB_PASSWORD: mypassword
    depends_on:
      - database
    volumes: # Том для хранения данных Redmine
    - ./images:/var/www/html/images/mediawiki
  
  redmine:
    image: redmine:latest # Образ
    container_name: redmine # Имя контейнера
    restart: always # Автоматический перезапуск контейнера
    environment: # Переменные окружения для конфигурации базы данных
      REDMINE_DB_MYSQL: mysql
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: mypassword
    ports:
      - 3000:3000 # Проброшенные порты с хоста внутрь контейнера
    depends_on:
      - mysql

  database: # Сервис базы данных MySQL
    container_name: db # Имя контейнера
    image: mysql:latest  # Образ
    restart: always # Автоматический перезапуск контейнера
    environment: # Переменные окружения для конфигурации базы данных
      MYSQL_DATABASE: mediawiki
      MYSQL_USER: wiki
      MYSQL_PASSWORD: P@ssw0rd
      MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
    volumes: # Определение томов для сохранения данных базы данных 
      - ./dbvolume:/var/lib/mysql

  mysql: # Сервис базы данных MySQL
    image: mysql:latest # Образ
    container_name: redmine-mysql # Имя контейнера
    restart: always # Автоматический перезапуск контейнера
    environment: # Переменные окружения для конфигурации базы данных
      MYSQL_ROOT_PASSWORD: myrootpassword
      MYSQL_DATABASE: redmine
      MYSQL_USER: redmine
      MYSQL_PASSWORD: mypassword