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

services:  # Определение сервисов, которые будут запускаться

  db:  # Сервис базы данных MySQL
    image: mysql:8.0  # Образ
    restart: always  # Автоматический перезапуск контейнера
    environment:  # Переменные окружения для конфигурации базы данных
      MYSQL_ROOT_PASSWORD: example  
      MYSQL_DATABASE: exampledb  
      MYSQL_USER: exampleuser 
      MYSQL_PASSWORD: examplepass 
    volumes:  # Определение томов для сохранения данных базы данных
      - db-data:/var/lib/mysql  

  redmine:  # redmine Система учёта багов, т.е. баг-трекер.
    image: redmine  # Образ
    restart: always  # Автоматический перезапуск контейнера
    ports:  
      - 8080:3000  # Переадресация локального порта 8080 на порт 3000 в контейнере
    environment:  # Переменные окружения для настройки Redmine (подключение к бд)
      REDMINE_DB_DATABASE: exampledb  
      REDMINE_DB_MYSQL: db  
      REDMINE_DB_PASSWORD: example  
      REDMINE_SECRET_KEY_BASE: supersecretkey  
    volumes:  # Том для хранения данных Redmine
      - redmine:/usr/src/redmine/files  

  wordpress:  # wordpress Популярная система управления контентом.
    image: wordpress  # Образ 
    restart: always  # Автоматический перезапуск контейнера
    ports:  
      - 8081:80  # Переадресация локального порта 8081 на порт 80 в контейнере
    environment:  # Переменные окружения для настройки WordPress (подключение к бд)
      WORDPRESS_DB_HOST: db  
      WORDPRESS_DB_USER: exampleuser  
      WORDPRESS_DB_PASSWORD: examplepass  
      WORDPRESS_DB_NAME: exampledb  
    volumes:  # Том для хранения данных WordPress
      - wordpress:/var/www/html  

volumes:  # Определение томов для хранения данных
  wordpress:  
  db-data: 
  redmine: