37 lines
3.2 KiB
Markdown
37 lines
3.2 KiB
Markdown
|
## Задание
|
|||
|
Развернуть два взаимосвязанных сервиса по варианту:
|
|||
|
|
|||
|
Вариант 1:
|
|||
|
* Сервис 1 ищет в каталоге /var/data файл с наибольшим количеством строк и перекладывает его в /var/result/data.txt.
|
|||
|
* Сервис 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.
|
|||
|
|
|||
|
Ход работы: нажатие кнопок на странице первого сервиса, потом - второго.
|
|||
|
Запросы:
|
|||
|
![Запросы](screens/requests.png)
|
|||
|
Выходные данные: средний файл, перенесённый в /var/result/data.txt, файл result.txt там же с результатом вычислений - числом 1600. Результат выведен на страницу второго сервиса:
|
|||
|
![Результат](screens/res.png)
|
|||
|
|
|||
|
## Ссылка на видео
|
|||
|
https://drive.google.com/file/d/1ZI1FeQ8BqPR-e_dKnUlNW7V5A39ZlTYu/view?usp=drive_link
|