45 lines
2.8 KiB
Markdown
45 lines
2.8 KiB
Markdown
|
# Лабораторная работа №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
|