DAS_2023_1/savenkov_alexander_lab_2/README.md

106 lines
5.7 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 - Разработка простейшего распределенного приложения
Цель: изучение техники создания простого распределенного приложения.
Задачи:
- Согласно вышему варианту (выбирайте любой) разработать два приложения такие, что результат первого является исходными данными для второго.
- Изучить файлы сборки образов docker и разработать их для созданных приложений.
- Собрать файл docker-compose.yml для запуска приложений. Разобраться с монтированием каталогов из хост-системы.
- Правильно закоммитить результат без лишних файлов.
- Оформить pull request по правилам и отправить его на проверку.
# Разработка двух приложений
Вариант первого приложения(worker-1): 5 - Ищет в каталоге /var/data файл с самым коротким названием и перекладывает его в /var/result/data.txt
Вариант второго приложения(worker_2) 1 - Ищет набольшее число из файла /var/data/data.txt и сохраняет его вторую степень в /var/result/result.txt
Приложения выполнены на языке Java
<p>
<div>Worker-1</div>
<img src="screens/img1.png" width="650" title="Worker-1">
</p>
<p>
<div>Worker-2</div>
<img src="screens/img2.png" width="650" title="Worker-2">
</p>
# Запуск
Запуск контейнеров производится командой "docker-compose up -d"
# Работа программы
- Создание двух деррикторий: worker-1 и worker-2 для реализаций двух программ.
- Описание Dockerfile для создания образов для обоих программ.
<p>
<div>Worker-1 Dockerfile</div>
<img src="screens/img3.png" width="650" title="Worker-1 Dockerfile">
</p>
<p>
<div>Worker-2 Dockerfile</div>
<img src="screens/img4.png" width="650" title="Worker-2 Dockerfile">
</p>
- Создание двух репозиториев: data, result, для монтирования их в контейнеры.
<p>
<div>data</div>
<img src="screens/img5.png" width="650" title="data">
</p>
<p>
<div>result</div>
<img src="screens/img6.png" width="650" title="result">
</p>
<p>
<div>f3.txt</div>
<img src="screens/img7.png" width="650" title="f3.txt">
</p>
<p>
<div>file_with_a_very_long_name_that_is_often_used_in_programming.txt</div>
<img src="screens/img8.png" width="650" title="file_with_a_very_long_name_that_is_often_used_in_programming.txt">
</p>
<p>
<div>file1.txt</div>
<img src="screens/img9.png" width="650" title="file1.txt">
</p>
- Описание docker-compose: запускает контейнеры, реализует build для создания образов на основе dockerfile и у второго контейнера описавыется зависимость depends_on от первого контейнера, чтобы сначала запустился первый контейнер, а за ним запустился второй. Также описываются volumes, для монтирование папок data и result в контейнеры.
<p>
<div>docker-compose</div>
<img src="screens/img10.png" width="650" title="docker-compose">
</p>
<p>
<div>Сборка и запуска контейнеров</div>
<img src="screens/img11.png" width="650" title="Сборка и запуска контейнеров">
</p>
<p>
<div>Проверка в Docker Desktop контейнеров и образов</div>
<img src="screens/img12.png" width="650" title="Проверка в Docker Desktop контейнеров и образов">
</p>
<p>
<img src="screens/img13.png" width="650" title="Проверка в Docker Desktop контейнеров и образов">
</p>
<p>
<div>Смотрим, что выдает нам первый воркер в консоль</div>
<img src="screens/img14.png" width="650" title="Смотрим, что выдает нам первый воркер в консоль">
</p>
<p>
<div>Смотрим, что выдает нам второй воркер в консоль</div>
<img src="screens/img15.png" width="650" title="Смотрим, что выдает нам второй воркер в консоль">
</p>
<p>
<div>Смотрим, что при запуске контейнеров действительно в папке result создалось два файла data.txt и result.txt</div>
<img src="screens/img16.png" width="650" title="Смотрим, что при запуске контейнеров действительно в папке result создалось два файла data.txt и result.txt">
</p>
<p>
<div>Смотрим, что лежит в файле data.txt</div>
<img src="screens/img17.png" width="650" title="Смотрим, что лежит в файле data.txt">
</p>
<p>
<div>Смотрим, что лежит в файле result.txt</div>
<img src="screens/img18.png" width="650" title="Смотрим, что лежит в файле result.txt">
</p>
# Видео
Видео с разбором лабораторной работы - https://youtu.be/o_sTok7W22s