DAS_2024_1/yakovleva_yulia_lab_2/README.md
2024-09-24 14:53:05 +04:00

35 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа 2
## Описание
В данной лабораторной работе были изучены файлы сборки образов и создание их для приложений. Сборки образов необходимы для контейниризации созданных приложений. В файле сборки мы указываем папку из которой копируем в контейнер и собираем проект.
## Описание работы
Были выбраны варианты для первого приложения - 3 вариант и для второго 3 вариант.
В первом приложении мы ищем все файлы из папки output и записываем количество строк каждого файла в файл data.txt. Затем второе приложение ищет в data.txt наибольшее значения и записывает количество наибольших значений в файл result.txt.
## Запуск
1. Для начала необходимо запустить Docker
2. Открыть консоль, перейти в папку с docker-compose.yml
3. Ввести команду:
```
docker compose up --build
```
`--build` необходим для принудительной сборки контейнеров, даже если они уже запущены.
## Результат
В результате в логах видим, что приложения успешно отработали:
```
app2-1 | Количество наибольших чисел: 1
app1-1 exited with code 0
app2-1 exited with code 0
```
И также видим в папке Files две созданные папки: data и result. В data находятся сгенерированные файлы, а в result - файл с результатом.
## Описание docker-compose.yml
В docker-compose.yml запускаются 3 сервиса: первый генерирует файлы с рандомным набором строк, второй сервис записывает количество строк каждого файла в data.txt, а третий сервис определяет количество наибольших чисел из файла data.txt и записывает результат в файл result.txt. Также используются зависимости `depends_on`, второй сервис зависит от запуска первого, и третий севрис зависит от запуска второго.
С помощью `volumes` создаем буферную область, которая позволяет использовать двум севрисам одну папку. `build` позволяет использовать только что собранный образ в момент запуска.
## Видеоотчёт
[Видеоотчёт](https://disk.yandex.ru/i/Ds2f4xO8vQ8XPA)