# Лабораторная работа №1 - Знакомство с docker и docker-compose  

## Задание

Нужно развернуть  3 сервиса  в контейнерах docker через docker-compose.

Необходимые требования:

* Несколько контейнеров.
* Хотя бы один volume.
* Хотя бы один порт, проброшенный на хост.
* Разворачивание системы должно пройти до конца. 

## Запуск ЛР:

Введем в терминале команду:
```
docker-compose up -d
```
## Использованные сервисы:

 1. ```db``` - база данные MySQL

 2. ```redmine``` -  Система учёта багов, т.е. баг-трекер.

 3. ```mediawiki``` - движок вики

 4. ```wordpress``` - платформа для управления контентом

## Описание программы:

Развернутые сервисы:

### wordpress

```
wordpress:  # Определение сервиса WordPress
    image: wordpress:latest  # Используемый образ WordPress последней версии
    containername: wp_app  # Имя контейнера
    restart: always  
    ports:  # Настройка портов
      - "8000:80"   
    environment:  # Переменные окружения
      WORDPRESSDBHOST: ${DBHOST}  
      WORDPRESSDBUSER: ${DBUSER}  
      WORDPRESSDBPASSWORD: ${DBPASSWORD}  
      WORDPRESSDBNAME: ${DBNAME} 
      WORDPRESSADMINUSER: admin  
      WORDPRESSADMINPASSWORD: adminpassword  
      WORDPRESSADMINEMAIL: admin@example.com  
    volumes:  # Настройка томов
      - wordpress_data:/var/www/html  
    dependson:  # Зависимости
      - db_wordpress  # Зависит от сервиса MySQL

```
Эта строка отвечает за образ сброки:
```
image: wordpress:latest 
```
Задание имени контейнера:
```
containername: wp_app
```
Проброс портов:
```
ports:
  - 8000:80
```
Тома для хранения данных:
```
volumes:  
      - wordpress_data:/var/www/html  

```
Переменные окружения 
```
environment:
      WORDPRESSDBHOST: ${DBHOST}  
      WORDPRESSDBUSER: ${DBUSER}  
      WORDPRESSDBPASSWORD: ${DBPASSWORD}  
      WORDPRESSDBNAME: ${DBNAME} 
      WORDPRESSADMINUSER: admin  
      WORDPRESSADMINPASSWORD: adminpassword  
      WORDPRESSADMINEMAIL: admin@example.com 

```
Зависимости

```
dependson:  
      - db_wordpress

```
Аналогично со другими сервисами:

### mediawiki

```
mediawiki:  # Определение сервиса MediaWiki
    image: mediawiki:1.35  # Используемый образ MediaWiki версии 1.35
    ports:  # Настройка портов
      - "8080:80"  
    containername: mediawiki  # Имя контейнера
    volumes:  # Настройка томов
      - mediawiki_data:/var/www/html/images mediawiki:  # Определение сервиса MediaWiki
    image: mediawiki:1.35  # Используемый образ MediaWiki версии 1.35
    ports:  # Настройка портов
      - "8080:80"  
    containername: mediawiki  # Имя контейнера
    volumes:  # Настройка томов
      - mediawiki_data:/var/www/html/images 

```

### redmine

```

redmine:  # Определение сервиса Redmine
    image: redmine:latest  # Используемый образ Redmine последней версии
    containername: redmine  # Имя контейнера
    ports:  # Настройка портов
      - "3000:3000"  
    volumes:  # Настройка томов
      - redmine_data:/usr/src/redmine/files 

```

# Скрины работы программы:

Панель консоли
![](lab_1.png "")

# Видео

https://vk.com/video230744264_456239102