forked from Alexey/DAS_2024_1
50 lines
5.0 KiB
Markdown
50 lines
5.0 KiB
Markdown
|
# Отчет по лабораторной работе №2
|
|||
|
|
|||
|
## Поставленные задачи
|
|||
|
|
|||
|
1. Согласно вашему варианту (выбирайте любой) разработать два приложения такие, что результат первого является исходными данными для второго.
|
|||
|
2. Изучить файлы сборки образов docker и разработать их для созданных приложений.
|
|||
|
3. Собрать файл docker-compose.yml для запуска приложений. Разобраться с монтированием каталогов из хост-системы.
|
|||
|
4. Правильно закоммитить результат без лишних файлов.
|
|||
|
5. Оформить pull request по правилам и отправить его на проверку.
|
|||
|
|
|||
|
## Варианты заданий
|
|||
|
|
|||
|
1. **Программа 1 под вариантом 5:** Ищет в каталоге /var/data файл с самым коротким названием и перекладывает его в /var/result/data.txt.
|
|||
|
2. **Программа 2 под вариантом 2:** Ищет наименьшее число из файла /var/data/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
|
|||
|
```
|
|||
|
Эта команда запустит контейнеры в фоновом режиме. Для отслеживания процесса можно использовать команду без флага `-d`, чтобы контейнеры запускались в режиме вывода логов.
|
|||
|
|
|||
|
3. После успешного запуска можно перейти в каталог проекта и увидеть папку data со сгенерированными файлами и папку result, в которой два текстовых файла:
|
|||
|
- data.txt - файл, полученный после выполнения первой программы.
|
|||
|
- result.txt -файл, полученный после выполнения второй программы.
|
|||
|
|
|||
|
## Ход работы
|
|||
|
|
|||
|
1. **Реализация генератора файлов**
|
|||
|
Написание скрипта generate_files.py, который генерирует случайные файлы с числами и сохраняет их в папке data. Создание Dockerfile для генератора, который устанавливает Python и копирует скрипт в контейнер. (ПОстрочное описание скрипта и Dockerfile представлено в папке generator)
|
|||
|
2. **Реализация первого приложения**
|
|||
|
Создание первой программы в app.py, которая ищет файл с самым коротким именем в папке data и копирует его содержимое в result/data.txt. Создание Dockerfile для первого приложения с аналогичной для Dockerfile из generate структурой.
|
|||
|
3. **Реализация второго приложения**
|
|||
|
Создание второй программы в app.py, которая находит минимальное число из result/data.txt и записывает его третью степень в result/result.txt. Создание Dockerfile для второго приложения с аналогичной для Dockerfile из generate структурой.
|
|||
|
4. **Создание файла docker-compose.yml**
|
|||
|
Создание файла docker-compose.yml, в котором описываются все три сервиса (генератор, первое приложение, второе приложение). Необходимо настроить их зависимости и монтирование папок.
|
|||
|
|
|||
|
Построчное описание docker-compose.yaml и других файлов выполнено в самих файлах.
|
|||
|
|
|||
|
## Демонстрационное видео
|
|||
|
|
|||
|
Видеозапись доступна по адресу: [https://vk.com/video193898050_456240869] (https://vk.com/video193898050_456240869)
|