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

### Сервис Redmine
#### Система учета багов, т.е. баг-трекер

**Код docker-compose.yml:**

`version: '3.1' #версия` 

`services: #разворачивание сервисов`

`redmine:`

`image: redmine #образ, с помощью которого разворачивается контейнер`

`restart: always`

`ports:`

` - 8080:3000 #указываем порт хоста и виртуалки`

`environment: #настройка переменных окружения`

`REDMINE_DB_MYSQL: db #подключение и вызов к другому контейнеру (db)`

`REDMINE_DB_PASSWORD: example #пароль`

`REDMINE_SECRET_KEY_BASE: supersecretkey`

`db: #название хоста, с помощью которого подключается к другому контейнеру (redmine)`

`image: mysql:5.7`

`restart: always`

`environment: #настройка переменных окржения`

`MYSQL_ROOT_PASSWORD: example #пароль`

`MYSQL_DATABASE: redmine #название БД`

**Принцип работы:** 

Определяются volume, которые находятся в образе "image: redmine" контейнера "redmine". 

Контейнер "redmine" запускается из образа "image: redmine" из Docker Hub. 

В "ports" указывается локальный хост 8080 и хост виртуальной машины 3000.

Настройка переменных окружения настривается в "environment":

-Название БД и вызов другого контейнера с названием db

-Используемый пароль при подключении к БД

-БД, которую Redmine будет использовать на указанном сервере

-Переменная REDMINE_SECRET_KEY_BASE для поддержания сеансовых соединений

Второй котнейнер "db" подключается к контейнеру "redmine" с помощью названия хоста в настройке переменных окружения.

В контейнере "db" также в "environment" настраиваются переменные окружения.

Скришот работы сервиса redmine:

![Alt text](images/image-1.png)

### Сервис Wordpress
#### Популярная система управления контентом.

**Код docker-compose.yml:**

  `db:`

`image: mariadb:10.6.4-focal #образ, с помощью которого разворачивается контейнер` 
  
`command: '--default-authentication-plugin=mysql_native_password'`

`volumes:`

`- db_data:/var/lib/mysql`

`restart: always`

`environment: #настройка переменных окружения`

`- MYSQL_ROOT_PASSWORD=somewordpress`

`- MYSQL_DATABASE=wordpress`

`- MYSQL_USER=wordpress`

`- MYSQL_PASSWORD=wordpress`

`expose: #описание сетевых портов`

`- 3306`

`- 33060`

`wordpress: #название хоста, который подключается к другому контейнеру`

`image: wordpress:latest`

`volumes:`

`- wp_data:/var/www/html`

`ports: #порт хоста и виртуалки`

`- 80:80`

`restart: always`

`environment: #настройка переменных окржуения`

`- WORDPRESS_DB_HOST=db`

`- WORDPRESS_DB_USER=wordpress`

`- WORDPRESS_DB_PASSWORD=wordpress`

`- WORDPRESS_DB_NAME=wordpress`

`volumes: #описание вольюмов`

  `db_data:`

  `wp_data:`

**Принцип работы:** 

Определяются volumes, которые находятся в образах "image: wordpress:latest" и "image: mariadb:10.6.4-focal". 

В "ports" указывается локальный хост 80 и хост виртуальной машины 80.

Настройка переменных окружения настривается в "environment":

-Название БД 

-Используемый пароль при подключении к БД

-БД, которую Redmine будет использовать на указанном сервере

-Описание сетевых портов expose, которые будут прослушиваться в запущенном контейнере (3306, 33060)

Скришот работы сервиса wordpress:

Выбираем язык:

![Alt text](images/image-2.png)

Заполняем нужную информацию (название сайта, имя пользователя, пароль, адрес электронной почты):

![Alt text](images/image-3.png)

После регистрации открывается следующее окно:

![Alt text](images/image-4.png)

Далее проходим авторизацию и наслаждемся работой в WordPress:

![Alt text](images/image-5.png)

### Сервис MediaWiki
#### Движок вики.

**Код docker-compose.yml:**

`version: '3'`

`services:`

  `mediawiki:`

`image: mediawiki #образ, с помощью которого разворачивается контейнер mediawiki`

`restart: always`

`ports: #порт хоста и виртуалки`

`- 80:80`

`links: #зависимости от других сервисов`

`- database`

`volumes:`

`- images:/var/www/html/images`
      
  `database:`

`image: mariadb #образ, с помощью которого разворачивается БД`

`restart: always`

`environment: #настройка переменных окржения`

`MYSQL_DATABASE: my_wiki`

`MYSQL_USER: wikiuser`

`MYSQL_PASSWORD: example`

`MYSQL_RANDOM_ROOT_PASSWORD: 'yes'`

`volumes:`

`- db:/var/lib/mysql`

`volumes: #описание вольюмов`

  `images:`

  `db:`

**Принцип работы:** 

Скачиваем образ image: mediawiki, с помощью которого разворачивается контейнер mediawiki

В "ports" указывается локальный хост 80 и хост виртуальной машины 80

С помощью настройки links указываем зависимости от других сервисов

Образ image: mariadb разворачивает контейнер database с БД

Настройка переменных окружения настривается в "environment":

-Название БД 

-Пользователь MediaWiki

-Используемый пароль при подключении к БД

Скришот работы сервиса wordpress:

![Alt text](images/image-6.png)

Подключение к БД:

![Alt text](images/image-8.png)

Запускаем MediaWiki:

![Alt text](images/image-9.png)