.. | ||
first | ||
second | ||
.gitignore | ||
docker-compose.yml | ||
README.md |
Отчет. Лабораторная работа 2
В рамках лабораторной работы №2 были написаны два сервиса, работающих с текстовыми файлами. Для первого сервиса был выбран вариант задания №5:
Ищет в каталоге /var/data файл с самым коротким названием и перекладывает его в /var/result/data.txt.
А для второго - №2:
Ищет наименьшее число из файла /var/data/data.txt и сохраняет его третью степень в /var/result/result.txt.
Описание
Сначала сервис first перемещает данные из файла с самым коротким названием, находящегося в указанной примонтированной директории, в выходную папку. Доступ к выходной папке имеет второй сервис, который выводит наименьшее число из помещенного первым сервисом файла в третьей степени в выходной файл. Выходной файл расположен в примонтированной директории и доступен на машине, где запускаются сервисы.
В Dockerfile используется многоэтапная сборка с использованием нескольких базовых образов на каждом этапе. Описание значения каждой строки есть в Dockerfile в сервисе first.
В файле docker-compose.yml приведено описание новых строк, связанных с подключением примонтированных томов. Стоит отметить, что для "общения" сервисов используется общий том common, который монтируется в контейнер по пути /var/result. Это позволяет сохранять результаты работы первого сервиса для использования вторым сервисом.
Как запустить
Для того, чтобы запустить сервисы, необходимо выполнить следующие действия:
- Установить и запустить Docker Engine или Docker Desktop
- Через консоль перейти в папку, в которой расположен файл docker-compose.yml
- Выполнить команду:
docker compose up --build
В случае успешного запуска всех контейнеров в консоли будет выведено следующее сообщение:
✔ Network borschevskaya_anna_lab_2_default Created 0.1s
✔ Container borschevskaya_anna_lab_2-first-1 Created 0.1s
✔ Container borschevskaya_anna_lab_2-second-1 Created 0.1s
Attaching to borschevskaya_anna_lab_2-first-1, borschevskaya_anna_lab_2-second-1
Далее, в консоль каждого сервиса будут выведены сообщения о том, как прошла обработка файлов. В случае отсутствия заданных значений переменных окружения INPUT_PATH и OUTPUT_PATH и в иных исключительных ситуация будет выведена информация об этом.
Видео-отчет
Работоспособность лабораторной работы можно оценить в следующем видео.