# Лабораторная работа 2 ## Описание В данной лабораторной работе были изучены файлы сборки образов и создание их для приложений. Сборки образов необходимы для контейниризации созданных приложений. В файле сборки мы указываем папку из которой копируем в контейнер и собираем проект. ## Описание работы Были выбраны варианты для первого приложения - 3 вариант и для второго 3 вариант. В первом приложении мы ищем все файлы из папки output и записываем количество строк каждого файла в файл data.txt. Затем второе приложение ищет в data.txt наибольшее значения и записывает количество наибольших значений в файл result.txt. ## Запуск 1. Для начала необходимо запустить Docker 2. Открыть консоль, перейти в папку с docker-compose.yml 3. Ввести команду: ``` docker compose up --build ``` `--build` необходим для принудительной сборки контейнеров, даже если они уже запущены. ## Результат В результате в логах видим, что приложения успешно отработали: ``` app2-1 | Количество наибольших чисел: 1 app1-1 exited with code 0 app2-1 exited with code 0 ``` И также видим в папке Files две созданные папки: data и result. В data находятся сгенерированные файлы, а в result - файл с результатом. ## Описание docker-compose.yml В docker-compose.yml запускаются 3 сервиса: первый генерирует файлы с рандомным набором строк, второй сервис записывает количество строк каждого файла в data.txt, а третий сервис определяет количество наибольших чисел из файла data.txt и записывает результат в файл result.txt. Также используются зависимости `depends_on`, второй сервис зависит от запуска первого, и третий севрис зависит от запуска второго. С помощью `volumes` создаем буферную область, которая позволяет использовать двум севрисам одну папку. `build` позволяет использовать только что собранный образ в момент запуска. ## Видеоотчёт [Видеоотчёт](https://disk.yandex.ru/client/disk/Распределенные%20приложения?idApp=client&dialog=slider&idDialog=%2Fdisk%2FРаспределенные%20приложения%2Fbandicam%202024-09-20%2017-49-07-681.mp4)