# Лабораторная работа №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
Worker-1
Worker-2
# Запуск
Запуск контейнеров производится командой "docker-compose up -d"
# Работа программы
- Создание двух деррикторий: worker-1 и worker-2 для реализаций двух программ.
- Описание Dockerfile для создания образов для обоих программ.
Worker-1 Dockerfile
Worker-2 Dockerfile
- Создание двух репозиториев: data, result, для монтирования их в контейнеры.
data
result
f3.txt
file_with_a_very_long_name_that_is_often_used_in_programming.txt
file1.txt
- Описание docker-compose: запускает контейнеры, реализует build для создания образов на основе dockerfile и у второго контейнера описавыется зависимость depends_on от первого контейнера, чтобы сначала запустился первый контейнер, а за ним запустился второй. Также описываются volumes, для монтирование папок data и result в контейнеры.
docker-compose
Сборка и запуска контейнеров
Проверка в Docker Desktop контейнеров и образов
Смотрим, что выдает нам первый воркер в консоль
Смотрим, что выдает нам второй воркер в консоль
Смотрим, что при запуске контейнеров действительно в папке result создалось два файла data.txt и result.txt
Смотрим, что лежит в файле data.txt
Смотрим, что лежит в файле result.txt
# Видео
Видео с разбором лабораторной работы - https://youtu.be/o_sTok7W22s