DAS_2024_1/davydov_yuriy_lab_2
2024-12-20 11:50:51 +03:00
..
WorkFirst davydov_yuriy_lab_2 2024-12-20 11:50:51 +03:00
WorkSecond davydov_yuriy_lab_2 2024-12-20 11:50:51 +03:00
.gitignore davydov_yuriy_lab_2 2024-12-20 11:50:51 +03:00
2.mp4 davydov_yuriy_lab_2 2024-12-20 11:50:51 +03:00
docker-compose.yml davydov_yuriy_lab_2 2024-12-20 11:50:51 +03:00
README.md davydov_yuriy_lab_2 2024-12-20 11:50:51 +03:00

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

ПИбд-42 || Давыдов Юрий

Описание

В рамках данной лабораторной работы были созданы два контейнера с простыми программами на Python, которые выполняют следующие условия: результат работы первой программы служит исходными данными для второй программы.

Цель лабораторной работы Изучение процесса создания простого распределённого приложения.

  1. Варианты Для обеих программ был выбран вариант 1.

Описание первой программы: 1. Программа находит в каталоге /var/data файл с наибольшим количеством строк и перемещает его в /var/result/data.txt.

Описание второй программы: 1. Программа находит наибольшее число в файле /var/data/data.txt и записывает его квадрат в /var/result/result.txt.

  1. Dockerfile Оба Dockerfile имеют схожую структуру:

Dockerfile Копировать код

Используем базовый образ python

FROM python:3.12

Устанавливаем рабочую директорию

WORKDIR /app

Копируем код в рабочую директорию

COPY main.py .

Указываем /var/data как монтируемую директорию

VOLUME ["/var/data"]

Указываем /var/result как монтируемую директорию

VOLUME ["/var/result"]

Задаем команду для запуска программы

CMD ["python", "main.py"] 3. Docker-compose docker-compose.yml:

yaml Копировать код services:

Первая программа

first: # Директория для сборки первой программы build: ./WorkFirst/ # Монтируем 2 каталога из хост-системы volumes: - ./data:/var/data - ./result_first:/var/result

Вторая программа

second: # Директория для сборки второй программы build: ./WorkSecond/ # Задаем зависимость запуска через depends_on depends_on: - first # Монтируем 2 каталога из хост-системы volumes: - ./result_first:/var/data - ./result_second:/var/result 4. Инструкция для работы Клонировать репозиторий: bash Копировать код git clone <ссылка-на-репозиторий> cd <папка репозитория> cd <папка лабораторной работы>


2. Запуск контейнеров:

docker compose up --build


3. Результаты:
   Итог работы первой программы будет в папке `result_first`, а второй - в `result_second`.