DAS_2023_1/sergeev_evgenii_lab_2
sergeevevgen ea990fd848 +
2024-01-16 14:52:17 +04:00
..
service1 + 2024-01-16 14:52:17 +04:00
service2 + 2024-01-16 14:52:17 +04:00
docker-compose.yml + 2024-01-16 14:52:17 +04:00
README.md + 2024-01-16 14:52:17 +04:00

Задание

Развернуть два взаимосвязанных сервиса по варианту:

Вариант № 4 для первой программы:

  • Сервис формирует файл /var/result/data.txt так, что каждая строка файла - количество символов в именах файлов из каталога /var/data. Вариант № 2 для второй программы:
  • Сервис ищет наименьшее число из файла /var/data/data.txt и сохраняет его третью степень в /var/result/result.txt.

Выполнение

Были написаны два сервиса на языке python с использованием технологии flask. Они выводят на страницу кнопки, при нажатии на которые происходит соответствующие действия по заданию

Для сервисов прописаны файлы Dockerfile, описывающие создание контейнеров:

  • Для обоих контейнеров выбирается Python 9.
  • Оба контейнера проявляют порты, на которых работает приложение: 8081 для первого и 8082 для второго.
  • В контейнерах создаются папки /work для файлов скриптов, папки /var/result для обоих сервисов и /var/data для первого скрипта.
  • В оба контейнера устанавливается пакет Flask.
  • Выбирается рабочая директория /work и туда копируются файлы скриптов.
  • Командой запускаются сами скрипты.

Общий yaml-файл развёртки был настроен следующим образом:

  • блок services, где перечислены разворачиваемые сервисы.
  • для каждого сервиса прописан build, где объявляется его папка и докерфайл создания.
  • для каждого сервиса прописано отображение портов на такие же хоста.
  • для каждого сервиса прописано монтирование нужных папок хостовой системы как соответствующих папок внутри контейнеров.

Результат

Пример выполнения:

Исходные данные: три файла в папке /var/data, средний файл имеет наибольшее количество строк и наибольшее число 40.

Ход работы: нажатие кнопок на странице первого сервиса, потом - второго. Запросы: Запросы Выходные данные: средний файл, перенесённый в /var/result/data.txt, файл result.txt там же с результатом вычислений - числом 1600. Результат выведен на страницу второго сервиса: Результат

Ссылка на видео

https://drive.google.com/file/d/1ZI1FeQ8BqPR-e_dKnUlNW7V5A39ZlTYu/view?usp=drive_link