44 lines
3.3 KiB
Markdown
44 lines
3.3 KiB
Markdown
|
# Лабораторная работа №2 - Разработка простейшего распределённого приложения
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
* Разработать два приложения такие, что результат первого является исходными данными для второго.
|
|||
|
* Изучить файлы сборки образов ```docker``` и разработать их для созданных приложений и правильно закоммитить решение
|
|||
|
* Собрать файл ```docker-compose.yml``` для запуска приложений.
|
|||
|
|
|||
|
### Варианты задания:
|
|||
|
1. Первое приложение берёт из каталога /var/data случайный файл и перекладывает его в /var/result/data.txt
|
|||
|
|
|||
|
2. Второе приложение сохраняет произведение первого и последнего числа из файла /var/result/data.txt в /var/result/result.txt
|
|||
|
|
|||
|
## Запуск работы программы
|
|||
|
|
|||
|
1. Убедиться, что установлены необходимые технологии:
|
|||
|
- Docker: Платформа для контейнеризации приложений.
|
|||
|
- Docker Compose: Инструмент для запуска много контейнерных приложений на основе `docker-compose.yaml`. Обычно поставляется вместе с Docker. Чтобы проверить, установлена ли утилита, нужно запустить команду:
|
|||
|
```bash
|
|||
|
docker-compose --version
|
|||
|
```
|
|||
|
|
|||
|
2. В директории, где находится файл `docker-compose.yaml`, выполнить следующую команду для запуска всех сервисов:
|
|||
|
```bash
|
|||
|
docker-compose up --build
|
|||
|
```
|
|||
|
Эта команда сначала выполнит сборку, а затем запустит контейнеры.
|
|||
|
|
|||
|
3. После успешного запуска можно перейти в каталог проекта и увидеть папку data со сгенерированными файлами и папку result, в которой два текстовых файла:
|
|||
|
- data.txt - файл, полученный после выполнения первой программы.
|
|||
|
- result.txt -файл, полученный после выполнения второй программы.
|
|||
|
|
|||
|
## Описание работы:
|
|||
|
|
|||
|
1. **Генератор файлов**
|
|||
|
generate_files.py, генерирует случайные файлы с числами и сохраняет их в папке data.
|
|||
|
2. **Первое приложение**
|
|||
|
app.py, случайным образом получает один файл из папки data и копирует его содержимое в result/data.txt.
|
|||
|
3. **Второе приложение**
|
|||
|
app.py, находит произведение первого и последнего чисел из result/data.txt и записывает в result/result.txt.
|
|||
|
4. **Файла docker-compose.yml**
|
|||
|
docker-compose.yml построчно описан в комментариях в коде.
|
|||
|
|
|||
|
Файл Docker построчно описан в коде на примере Docker первого сервиса app_1.
|