DAS_2024_1/kuzarin_maxim_lab_2/README.md

3.4 KiB
Raw Permalink Blame History

Лабораторная работа 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 позволяет создать буферную область. Эту папку можно монтировать как результирующую для первого сервиса и исходную - для второго

Видеодемонстрация

Был записан видеоролик, демонстрирующий процесс запуска и работы сервисов. Он расположен по адресу