# Лабораторная работа №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