2024-01-16 14:52:17 +04:00
|
|
|
|
## Задание
|
|
|
|
|
Развернуть два взаимосвязанных сервиса по варианту:
|
|
|
|
|
|
|
|
|
|
Вариант № 4 для первой программы:
|
|
|
|
|
* Сервис формирует файл /var/result/data.txt так, что каждая строка файла - количество символов в именах файлов из каталога /var/data.
|
2024-01-16 16:05:42 +04:00
|
|
|
|
Вариант № 2 для второй программы:
|
2024-01-16 14:52:17 +04:00
|
|
|
|
* Сервис ищет наименьшее число из файла /var/data/data.txt и сохраняет его третью степень в /var/result/result.txt.
|
|
|
|
|
## Выполнение
|
|
|
|
|
Были написаны два сервиса на языке python с использованием технологии flask.
|
|
|
|
|
Они выводят на страницу кнопки, при нажатии на которые происходит соответствующие действия по заданию
|
|
|
|
|
|
|
|
|
|
Для сервисов прописаны файлы Dockerfile, описывающие создание контейнеров:
|
2024-01-16 16:57:20 +04:00
|
|
|
|
* Для обоих контейнеров выбирается Python 11
|
|
|
|
|
* На оба контейнера пробрасываются порты, на которых работает приложение: 8081 для первого и 8082 для второго
|
|
|
|
|
* Внутри контейнеров создаются папки /work для файлов скриптов, папки /var/result, /var/data для обоих сервисов
|
|
|
|
|
* В оба контейнера устанавливается фреймворк Flask
|
|
|
|
|
* Выбирается рабочая директория /work и туда копируются файлы скриптов
|
|
|
|
|
* Командой запускаются сами скрипты
|
|
|
|
|
|
|
|
|
|
Общий yml-файл настроен следующим образом:
|
2024-01-16 14:52:17 +04:00
|
|
|
|
* блок services, где перечислены разворачиваемые сервисы.
|
2024-01-16 16:57:20 +04:00
|
|
|
|
* для каждого сервиса прописан build, где обозначается его папка
|
|
|
|
|
* для каждого сервиса прописано пробрасывание портов на хостовую машину
|
|
|
|
|
* для каждого сервиса прописано отображение внутриконтейнерных папок на хостовые
|
2024-01-16 14:52:17 +04:00
|
|
|
|
|
|
|
|
|
## Результат
|
|
|
|
|
Пример выполнения:
|
|
|
|
|
|
2024-01-16 16:57:20 +04:00
|
|
|
|
Исходные данные: четыре файла в папке /var/data с разным по длине названием
|
|
|
|
|
|
|
|
|
|
Ход работы: нажатие кнопок на странице первого сервиса, потом - второго
|
|
|
|
|
Созданные контейнеры:
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
Страница первого задания:
|
|
|
|
|

|
2024-01-16 14:52:17 +04:00
|
|
|
|
|
2024-01-16 16:57:20 +04:00
|
|
|
|
Выходные данные при выполнении второго задания:
|
|
|
|
|

|
2024-01-16 14:52:17 +04:00
|
|
|
|
|
|
|
|
|
## Ссылка на видео
|
2024-01-16 17:12:52 +04:00
|
|
|
|
https://youtu.be/CEAAr0xolxM
|