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 |