services:
  # PostgreSQL
  db:
    # Образ контейнера PostgreSQL последней версии
    image: postgres
    # Название контейнера
    container_name: db
    # Переменные окружения для настройки базы данных
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    # Настройка корневого каталога, где хранятся данные
    # Слева указан каталог компьютера, справа - каталог контейнера
    # Нужно для сохранения данных на сервере после отключения контейнера
    volumes:
      - ./postgres:/var/lib/postgresql/data
    # Порт, через который можно будет подключиться к базе данных
    ports:
      - 5432:5432
    # После перезапуска докера всегда запускать этот контейнер
    restart: always
  # Gitea
  gitea:
    # Используется Gitea последней версии  
    image: gitea/gitea
    container_name: gitea
    # После перезапуска докера всегда запускать этот контейнер
    restart: always
    volumes:
      - ./data:/var/lib/gitea
      - ./config:/etc/gitea
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 3000:3000
      - 2222:2222
    environment:
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea
    # Указывается, что этот контейнер запускается только после запуска контейнера db
    depends_on:
      - db
  # MediaWiki
  mediawiki:
    # Образ контейнера MediaWiki последней версии
    image: mediawiki
    container_name: mediawiki
    restart: always
    ports:
      - 8080:80
    links:
      - db
    volumes:
      - ./images:/var/www/html/images