# Лабораторная работа 2 Данная работа посвящена теме создания контейнеров из исходного кода посредства dockerfile, а так же взаимодействию сервисов через общие папки ## Описание Был варана следующая комбинация вариантов: - Первое приложение - 0-ой - Второе приложение - 1-ый В результате, после запуска система изучит папку ./volumes/input, найдёт самый большой файл, а затем найдёт в нём самое большое число, выведя в директорию ./volumes/output файл с его квадратом. Буфер же, по сути не имеет физического отображения на папку хоста. ## Запуск Для запуска лабораторной работы необходимо иметь запущенный движок Docker на устройстве. Необходимо перейти в папку, где располагается данный файл. Далее открыть терминал и ввести команду: ``` docker compose up --build ``` В данном случае флаг `--build` заставит систему в любом случае собрать образы из исходников (даже если они уже есть). В результате, после сборки оба сервиса запустятся и выведут в консоль логи примерно следующего содержания: ## Описание dockerfile файла Подробное описание дано в виде комментариев в самом файле первого сервиса. Так как для разработки использовался .net 8.0, команд довольно много. При этом, так как второй сервис написан на той же платформе, особенных отличий двух docekrfile-ов нет(кроме пути ## Описание compose файла Благодаря директиве `depends_on` в compose файле второй сервис будет ждать, пока не будет поднят первый сервис, и только потом начнёт подниматься. Директива `build` позволяет использовать в compose не уже готовый образ, а тот, что будет собран непосредственно в момент запуска(если он уже существует и нет флага силовой сборки, будет использоваться существующий образ) Область volumes позволяет создать буферную область. Эту папку можно монтировать как результирующую для первого сервиса и исходную - для второго ## Видеодемонстрация Был записан видеоролик, демонстрирующий процесс запуска и работы сервисов. Он расположен по [адресу](https://drive.google.com/file/d/1sACiKx3_HRApa89a7LZFAZV05o7POhq6/view?usp=sharing)