distributed-computing/labs/lab_2
2023-10-02 23:00:10 +04:00
..
README.md Предварительная версия л/р №2 2023-10-02 23:00:10 +04:00

Лабораторная работа №2 - Разработка простейшего распределённого приложения

Цель: изучение техники создания простого распределённого приложения.

Задачи:

  1. Согласно вашему варианту разработать два приложения такие, что результат первого является исходными данными для второго.
  2. Изучить файлы сборки образов docker и разработать их для созданных приложений.
  3. Собрать файл docker-compose.yml для запуска приложений. Разобраться с монтированием каталогов из хост-системы.
  4. Правильно закоммитить результат без лишних файлов.
  5. Оформить pull request по правилам и отправить его на проверку.

Разработка двух приложений

Варианты: TBD. Как получить вариант: TBD. Пример приложения 1: взять все файлы из заранее заданного каталога и положить содержимое всех файлов в один файл. Пример приложения 2: взять содержимое файла из программы 1, посчитать сумму всех чисел и положить её в другой файл. Вот тут есть пример отчёта.

Язык разработки приложений — любой.

Автор советует использовать dotnet, java, go или python.

Каждая программа должна лежать в отдельной подпапке в репозитории, например: tasks/moiseev-vv/lab_2/worker-1 и tasks/moiseev-vv/lab_2/worker-2.

Добавление файлов сборки Dockerfile

В каталоге с каждым приложением необходимо создать файл Dockerfile, где будут расположены инструкции по сборке образа с вашими приложениями.

Для многих языков программирования шаблоны Dockerfile можно найти в Интернете.

В рамках задания необходимо расписать, за что отвечает каждая значимая строка в Dockerfile. Хотя бы одном.

Если у вас используется multi-stage build (как в примере выше, где в одном Dockerfile несколько конструкций FROM), необходимо расписать, зачем.

Формирование файла docker-compose.yml

Необходимо в каталоге с вашей работой создать файл docker-compose.yml, чтобы можно было собрать и запустить программы следующей командой:

distributed-computing\tasks\moiseev-vv\lab_2$ docker compose up --build

До $ - каталог относительно корня репозитория, чтобы понять, откуда запускается docker compose.

Необходимо, чтобы в файле было:

  1. Два сервиса. Каждый соответствует вашим программам.
  2. Объявлена директива build для каждого сервиса.
  3. Была работа с монтированием папок.
  4. Были описаны зависимости одного сервиса от другого.

Коммит результата

Перед началом работы над задачей необходимо актуализировать свой форк, выполненный в работе №1.

Как это сделать зависит от конкретного хранилища git-репозиториев.

TODO: Так как всё-таки?!

Также необходимо не забыть добавить файл .gitignore в каталог с вашей работой. Если вы этого не сделаете, на коммит "полезут" файлы сборки и прочие вещи, который быть в публичном репозитории не должны.

Для dotnet файл .gitignore создаётся при помощи команды dotnet new gitignore.

Правила оформления pull request

Название pull request: [Л/Р 2] ФАМИЛИЯ ИМЯ, например, [Л/Р 2] Моисеев Владислав.