DAS_2024_1/haliullov_kamil_lab_2
2024-12-29 11:43:21 +04:00
..
datagenerator haliullov_kamil_lab_2 is ready 2024-12-29 11:43:21 +04:00
oneapp haliullov_kamil_lab_2 is ready 2024-12-29 11:43:21 +04:00
twoapp haliullov_kamil_lab_2 is ready 2024-12-29 11:43:21 +04:00
.gitignore haliullov_kamil_lab_2 is ready 2024-12-29 11:43:21 +04:00
docker-compose.yml haliullov_kamil_lab_2 is ready 2024-12-29 11:43:21 +04:00
README.md haliullov_kamil_lab_2 is ready 2024-12-29 11:43:21 +04:00

Лабораторная работа №2 - Разработка простейшего распределённого приложения

Задание

  1. Разработать два приложения:
    • OneApp: Берёт из каталога /var/data случайный файл и перекладывает его в /var/result/data.txt.
    • TwoApp: Сохраняет произведение первого и последнего числа из файла /var/result/data.txt в /var/result/result.txt.
  2. Разработать файлы сборки Docker для каждого приложения.
  3. Собрать файл docker-compose.yml для запуска обоих приложений.
  4. Настроить монтирование директорий для обмена данными между контейнерами.
  5. Правильно закоммитить решение с использованием .gitignore для исключения лишних файлов.

Запуск:

В директории, где находится файл docker-compose.yml, выполним команду для сборки и запуска всех контейнеров:

docker-compose up --build

Эта команда:

  1. Собирает все Docker-образы для сервисов.
  2. Запускает контейнеры.
  3. Автоматически подготавливает данные и выполняет приложения последовательно.

Результаты:

После успешного завершения работы контейнеров можно проверить результаты в папке result:

  • data.txt — файл, полученный после выполнения первого приложения (содержит копию случайно выбранного файла из папки data).

  • result.txt — файл, полученный после выполнения второго приложения (содержит произведение первого и последнего чисел из файла data.txt).

Генерация данных:

Для создания случайных данных был написан скрипт generate_data.py:

  • Создает несколько файлов с целыми числами в каталоге /var/data.
  • Каждый файл содержит случайные числа, которые будут использоваться первым приложением.

Dockerfile:

Каждое приложение имеет собственный Dockerfile, где указаны шаги для сборки Python-образов и запуска программ.

Видео

https://disk.yandex.ru/i/r1UsIUdnP2BdeQ