93 lines
3.0 KiB
Markdown
93 lines
3.0 KiB
Markdown
|
# Лабораторная работа №2 - Разработка простейшего распределённого приложения.
|
|||
|
|
|||
|
## Цель:
|
|||
|
Изучение техники создания простого распределённого приложения.
|
|||
|
|
|||
|
## Задачи:
|
|||
|
1. Согласно вашему варианту (выбирайте любой) разработать два приложения такие, что результат первого является исходными данными для второго.
|
|||
|
2. Изучить файлы сборки образов docker и разработать их для созданных приложений.
|
|||
|
3. Собрать файл docker-compose.yml для запуска приложений. Разобраться с монтированием каталогов из хост-системы.
|
|||
|
4. Правильно закоммитить результат без лишних файлов.
|
|||
|
5. Оформить pull request по правилам и отправить его на проверку.
|
|||
|
|
|||
|
## Запуск:
|
|||
|
Чтобы запустить контейнеры в docker, необходимо выполнить следующую команду:
|
|||
|
`docker-compose -f \ docker-compose.yml up -d`,
|
|||
|
где:
|
|||
|
+ `-f` - путь до docker-compose.yml файла
|
|||
|
+ `-d` - фоновый режим запуска
|
|||
|
|
|||
|
## Решение:
|
|||
|
Выбраны следующие варианты задания:
|
|||
|
+ Worker1: Ищет в каталоге /var/data файл с наибольшим количеством строк и перекладывает его в /var/result/data.txt.
|
|||
|
+ Worker2: Ищет набольшее число из файла /var/data/data.txt и сохраняет количество таких чисел из последовательности в /var/result/result.txt.
|
|||
|
|
|||
|
|
|||
|
+ `Worker1`:
|
|||
|
|
|||
|
![img.png](screenshots/img.png)
|
|||
|
|
|||
|
![img_1.png](screenshots/img_1.png)
|
|||
|
|
|||
|
![img_2.png](screenshots/img_2.png)
|
|||
|
|
|||
|
![img_6.png](screenshots/img_6.png)
|
|||
|
|
|||
|
+ `Worker2`:
|
|||
|
|
|||
|
![img_3.png](screenshots/img_3.png)
|
|||
|
|
|||
|
![img_4.png](screenshots/img_4.png)
|
|||
|
|
|||
|
![img_5.png](screenshots/img_5.png)
|
|||
|
|
|||
|
![img_7.png](screenshots/img_7.png)
|
|||
|
|
|||
|
**Файлы**:
|
|||
|
|
|||
|
+ **Файл `var/data/file1.txt`**:
|
|||
|
|
|||
|
![img_8.png](screenshots/img_8.png)
|
|||
|
|
|||
|
+ **Файл `var/data/file2.txt`**:
|
|||
|
|
|||
|
![img_9.png](screenshots/img_9.png)
|
|||
|
|
|||
|
+ **Файл `var/data/file3.txt`**:
|
|||
|
|
|||
|
![img_10.png](screenshots/img_10.png)
|
|||
|
|
|||
|
+ **Файл `docker-compose.yaml`**:
|
|||
|
|
|||
|
![img_11.png](screenshots/img_11.png)
|
|||
|
|
|||
|
**Результат запуска**:
|
|||
|
|
|||
|
![img_12.png](screenshots/img_12.png)
|
|||
|
|
|||
|
...
|
|||
|
|
|||
|
![img_13.png](screenshots/img_13.png)
|
|||
|
|
|||
|
**Образы**:
|
|||
|
|
|||
|
![img_14.png](screenshots/img_14.png)
|
|||
|
|
|||
|
**Контейнеры**:
|
|||
|
|
|||
|
![img_15.png](screenshots/img_15.png)
|
|||
|
|
|||
|
![img_18.png](screenshots/img_18.png)
|
|||
|
|
|||
|
![img_19.png](screenshots/img_19.png)
|
|||
|
|
|||
|
**Файл `var/result/data.txt`**:
|
|||
|
|
|||
|
![img_16.png](screenshots/img_16.png)
|
|||
|
|
|||
|
**Файл `var/result/result.txt`**:
|
|||
|
|
|||
|
![img_17.png](screenshots/img_17.png)
|
|||
|
|
|||
|
## Ссылка на видео:
|
|||
|
https://youtu.be/pLVCu7AxThc
|