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