# Отчёт по лабораторной работе №1

Выполнила: студентка гр. ИСЭбд-41 Халитова А.М.

## Разворачивание сервиса MediaWiki

Содержимое файла `docker-compose.yml` в папке MediaWiki:

```yaml
version: "3.2"

services: #описание контейнеров
#Контейнер Mysql используется как сервер для запуска
  mysql:
    image: mysql:5.7.23 #образ контейнера
    container_name: mysql
    hostname: mysql
    volumes: #подключаем каталог с базой данных
      - /var/lib/mysql:/var/lib/mysql
    env_file: #файл с настройками БД для подключения к серверу
      - ./mysql.env
    restart: always

#Контейнер Mediawiki используется для запуска самого сервиса
  mediawiki:
    image: diouxx/mediawiki #образ контейнера
    container_name : wiki
    hostname: wiki
    ports: #указываем по какому порту мы получаем доступ к сервису по адресу http://localhost:8081/
      - "8081:80"
    volumes: #прописываем каталоги для хранения данных контейнера
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
      - /var/www/html/wiki/:/var/www/html/wiki
      - ./data/LocalSettings.php:/var/www/html/LocalSettings.php

    restart: always
```
Далее в командной строке разворачиваем сервис командой `docker-compose up`:
![](shots/shot1.png)

Открываем Docker Desktop и проверяем, что контейнер сервера базы данных и MediaWiki созданы и запущены:
![](shots/shot2.png)

Переходим на http://localhost:8081:
![](shots/shot3.png)

Переходим к установке MediaWiki и прописываем указанные нами в файле `mysql.env` значения хоста, имя пользователя и пароль:
![](shots/shot4.png)
![](shots/shot5.png)
![](shots/shot6.png)

Далее заполняем данные страницы вики:
![](shots/shot7.png)

И завершаем установку путем скачивания и открытия файла настроек страницы:
![](shots/shot8.png)

## Разворачивание сервиса Wordpress

Также в файл `docker-compose.yml` в папке Wordpress прописываем следующий код:

```yaml
version: '3.1'
#Задаем контейнеры
services:
#Контейнер Wordpress 
  wordpress:
    image: wordpress #образ
    restart: always
    ports: #на каком порте запускаем
      - 8080:80
    environment: #настройки БД вордпресса для подключения к серверу
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes: #каталог хранения файлов сервиса
      - wordpress:/var/www/html

  db: #Контейнер MySQL
    image: mysql:5.7 #образ и его версия
    restart: always 
    environment: #настройки БД для подключения
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes: #каталог хранения данных БД
      - db:/var/lib/mysql

volumes:
  wordpress:
  db:
```

Через командную строку разворачиваем сервис:
![](shots/shot9.png)

В Docker Desktop проверяем, что оба контейнера запущены:
![](shots/shot10.png)

Теперь переходим на http://localhost:8080:
![](shots/shot11.png)

И устанавливаем Wordpress:
![](shots/shot12.png)

Далее осуществляем вход и попадаем на главную страницу, что говорит об успешной установке:
![](shots/shot13.png)
![](shots/shot14.png)

## Разворачивание сервиса Redmine

Содержимое файла `docker-compose.yml` в папке Redmine:

```yaml
version: '3.1'
#Задаем контейнеры
services:
#Контейнер Redmine
  redmine:
    image: redmine #образ
    restart: always
    ports: #на какой порт запускать
      - 8082:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: example
      REDMINE_SECRET_KEY_BASE: supersecretkey
#Контейнер базы данных MySQL
  db:
    image: mysql:5.7 #образ и версия
    restart: always
    environment: #название и пароль админа БД
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: redmine
```
Далее в командной строке разворачиваем сервис командой `docker-compose up`:
![](shots/shot15.png)

В Docker Desktop проверяем, что работают все три развернутых сервиса:
![](shots/shot16.png)

Переходим на http://localhost:8082:
![](shots/shot17.png)

Здесь мы можем выполнить вход как администратор или зарегистрироваться как пользователь. Попробуем зарегистрироваться:
![](shots/shot18.png)

Теперь попробуем войти в качестве пользователя:
![](shots/shot19.png)
И получаем ответ, что мы не можем этого сделать без подтверждения учетной записи админом.

Заходим в качестве администратора под логином и паролем admin/admin:
![](shots/shot20.png)

И попадаем в профиль администратора:
![](shots/shot21.png)

И так как мы являемся администратором, то в разделе администрирование/пользователи, мы можем подтвердить созданного нами ранее пользователя:
![](shots/shot22.png)