forked from Alexey/DAS_2024_1
35 lines
3.1 KiB
Markdown
35 lines
3.1 KiB
Markdown
|
# Лабораторная работа 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://drive.google.com/file/d/1sACiKx3_HRApa89a7LZFAZV05o7POhq6/view?usp=sharing)
|