26 lines
3.4 KiB
Markdown
26 lines
3.4 KiB
Markdown
|
# Лабораторная работа 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)
|
|||
|
|