distributed-computing/tasks/khalitova-am/lab_2/README.md
Khalitova Angelina 2f9935b4fd reworked
2023-10-16 20:20:21 +04:00

62 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Отчёт по лабораторной работе №2
Выполнила: студентка гр. ИСЭбд-41 Халитова А.М.
Вариант программы 1: Ищет в каталоге /var/data самый большой по объёму файл и перекладывает его в /var/result/data.txt.
Вариант программы 2: Ищет наибольшее число из файла /var/data/data.txt и сохраняет количество таких чисел из последовательности в /var/result/result.txt.
## Создание приложений
Создано два приложения .Net 6.0 на языке C# с помощью команд:
```sh
dotnet new console worker-1
dotnet new console worker-2
```
Программа №1 по варианту выполняет поиск самого большого файла в каталоге `/var/data` и перемещает его содержимое в `/var/result/data.txt`.
[Код программы worker-1](worker-1/Program.cs)
Программа №2 ищет наибольшее чисо в файле `/var/result/data.txt` (папка `/data` заменена на `/result` так как по условию задания результат программы 1, который перещемен в `/var/result/data.txt` является исходными данными для программы 2).
[Код программы worker-2](worker-2/Program.cs)
Дополнительно создан файл [.gitignore](.gitignore) с помощью команды `dotnet new gitignore`.
## Настройка окружения
Для связи двух приложений воспользуемся следующей схемой:
1. Каталог `./data` примонтирован в каталог `/var/data` для получения исходных данных программы №1.
2. Каталог `./result` примонтирован в каталог `/var/result` для перемещения промежуточных данных, полученных программой №1, для программы №2. И также каталог `./result` получает результаты работы программы №2.
Для каждой программы были созданы файлы Dockerfile с образами ([программа №1](worker-1/Dockerfile), [программа №2](worker-2/Dockerfile)) с описанием процесса сборки.
Был создан файл [docker-compose.yml](docker-compose.yml), в котором указан манифест для запуска распределённого приложения.
Был создан файл [.dockerignore](.dockerignore).
## Сборка и запуск
В каталог `./data` помещены 2 файла: `another_data.txt` и `data.txt`. Первый файл содержит два числа, а второй 12.
Для запуска приложения вводим команду `docker compose up`.
Результат запуска после сборки:
```
[+] Running 2/0
- Container lab_2-worker-1-1 Created
- Container lab_2-worker-2-1 Created
Attaching to lab_2-worker-1-1, lab_2-worker-2-1
lab_2-worker-1-1 exited with code 0
lab_2-worker-2-1 | 2
lab_2-worker-2-1 exited with code 0
```
В результате выполнения в каталоге `/var/result` был создан файл `/result.txt`, который содержит количество наибольшего числа в исходном файле. В нашем файле это число 9 и встречается оно 2 раза, соответственно, в файле хранится `2`. А также в результате выполнения программы результат выводится на экран (в консоль):
![](shot.png)