From de2e3c4f33cfdf46d0cbcd7d1a6b788ae539da02 Mon Sep 17 00:00:00 2001 From: enuementtt Date: Fri, 24 Nov 2023 19:05:48 +0400 Subject: [PATCH 1/2] romanova_adelina_lab_2 is ready --- romanova_adelina_lab_2/README.md | 179 ++++++++++++++++++++ romanova_adelina_lab_2/data/data_1.txt | 3 + romanova_adelina_lab_2/data/data_2.txt | 4 + romanova_adelina_lab_2/data/data_3.txt | 4 + romanova_adelina_lab_2/docker-compose.yml | 19 +++ romanova_adelina_lab_2/result/data.txt | 4 + romanova_adelina_lab_2/result/result.txt | 1 + romanova_adelina_lab_2/worker_1/Dockerfile | 4 + romanova_adelina_lab_2/worker_1/worker_1.py | 23 +++ romanova_adelina_lab_2/worker_2/Dockerfile | 4 + romanova_adelina_lab_2/worker_2/worker_2.py | 32 ++++ 11 files changed, 277 insertions(+) create mode 100644 romanova_adelina_lab_2/README.md create mode 100644 romanova_adelina_lab_2/data/data_1.txt create mode 100644 romanova_adelina_lab_2/data/data_2.txt create mode 100644 romanova_adelina_lab_2/data/data_3.txt create mode 100644 romanova_adelina_lab_2/docker-compose.yml create mode 100644 romanova_adelina_lab_2/result/data.txt create mode 100644 romanova_adelina_lab_2/result/result.txt create mode 100644 romanova_adelina_lab_2/worker_1/Dockerfile create mode 100644 romanova_adelina_lab_2/worker_1/worker_1.py create mode 100644 romanova_adelina_lab_2/worker_2/Dockerfile create mode 100644 romanova_adelina_lab_2/worker_2/worker_2.py diff --git a/romanova_adelina_lab_2/README.md b/romanova_adelina_lab_2/README.md new file mode 100644 index 0000000..33bee55 --- /dev/null +++ b/romanova_adelina_lab_2/README.md @@ -0,0 +1,179 @@ +# Лабораторная работа №2 - Разработка простейшего распределённого приложения + +## Задание + +* Разработать два приложения такие, что результат первого является исходными данными для второго. +* Собрать файл ```docker-compose.yml``` для запуска приложений. + +Изучить файлы сборки образов ```docker``` и разработать их для созданных приложений и правильно закоммитить решение + +### Варианты задания: + 1. ```worker_1``` - ищет в каталоге ```/var/data``` самый большой по объёму файл и перекладывает его в ```/var/result/data.txt``` + + 2. ```worker_2``` - Сохраняет произведение первого и последнего числа из файла ```/var/data/data.txt``` в ```/var/result/result.txt``` + + +## Запуск + +Введение в терминале команды: +``` +docker compose up --build +``` + +## Описание работы: + +Для разработки приложений был выбран язык программирования - ```python``` + +### Разработка приложения worker_1 + +```worker_1``` - ищет в каталоге ```/var/data``` самый большой по объёму файл и перекладывает его в ```/var/result/data.txt``` + +Листинг кода: +```import os +import shutil + +def find_largest_file(directory): + files = os.listdir(directory) + if not files: + return None + + largest_file = max(files, key=lambda f: os.path.getsize(os.path.join(directory, f))) + return largest_file + +def main(): + data_dir = '/var/data' + result_file = '/var/result/data.txt' + largest_file = find_largest_file(data_dir) + + if largest_file: + shutil.copy2(os.path.join(data_dir, largest_file), result_file) + else: + print('No files to copy.') + +if __name__ == "__main__": + main() +``` +Листинг кода сборки образа ```Dockerfile``` +``` +FROM python:3.11 +WORKDIR /app +COPY . . +CMD ["python", "worker_1.py"] +``` + +```WORKDIR /app:``` + +Эта строка устанавливает рабочую директорию внутри контейнера в /app. Все последующие инструкции Docker будут выполняться в этой директории. + +```COPY ..``` + +Эта строка копирует содержимое текущего каталога (где находится Dockerfile) внутрь контейнера в рабочую директорию /app. + +```CMD ["python", "worker_1.py"]:``` + +Эта строка задает команду, которая будет выполнена при запуске контейнера. В данном случае, она запускает скрипт worker_1.py с использованием интерпретатора Python. + +### Разработка приложения worker_2 + +```worker_2``` - Сохраняет произведение первого и последнего числа из файла ```/var/data/data.txt``` в ```/var/result/result.txt` + +Листинг кода: +``` +def calculate_product_of_first_and_last_numbers(file_path): + try: + with open(file_path, 'r') as file: + numbers = [int(line.strip()) for line in file.readlines()] + + if len(numbers) >= 2: + product = numbers[0] * numbers[-1] + print(f"Результат: {numbers[0]} * {numbers[-1]} = {product}") + return product + else: + return None + + except Exception as e: + return None + +def main(): + input_file_path = "/var/data/data.txt" + output_file_path = "/var/result/result.txt" + + result = calculate_product_of_first_and_last_numbers(input_file_path) + + if result is not None: + with open(output_file_path, 'w') as output_file: + output_file.write(str(result)) + else: + print("No result to save.") + +if __name__ == "__main__": + main() + +``` +Листинг кода сборки образа ```Dockerfile``` +``` +FROM python:3.11 +WORKDIR /app +COPY . . +CMD ["python", "worker_2.py"] +``` + +Работа сборки образа происходит аналогично первой программе. + +### Формирование файла docker-compose.yml +``` + version: "3" +services: + worker_1: + build: + context: ./worker_1 + dockerfile: Dockerfile + volumes: + - ./data:/var/data + - ./result:/var/result + + worker_2: + depends_on: + - worker_1 + build: + context: ./worker_2 + dockerfile: Dockerfile + volumes: + - ./result:/var/data + - ./result:/var/result +``` + +```build``` указывает на метод сборки образа в котором: ```context``` указывает на корневую директорию приложения, а dockerfile указывает на путь к ```Dockerfile```, ```volumes``` устанавливает локальную папку ```data``` как папку входных файлов ```/var/data```, а локальную папку ```result``` - как папку выходных файлов ```/var/result```. + +### Исходные данные папки data +Содержание файла data_1.txt: +``` +123 +456 +789 +``` +Содержание файла data_2.txt: +``` +234 +125 +764 +789 +``` +Содержание файла data_2.txt: +``` +8903 +324 +232 +233 + +``` + +# Скриншоты работы +Успешно выполненная работа: +![](1.png "") + +Работа Docker Desktop: +![](2.png "") + +# Youtube +https://youtu.be/WCKIk1zlH7o diff --git a/romanova_adelina_lab_2/data/data_1.txt b/romanova_adelina_lab_2/data/data_1.txt new file mode 100644 index 0000000..0eb7e4c --- /dev/null +++ b/romanova_adelina_lab_2/data/data_1.txt @@ -0,0 +1,3 @@ +123 +456 +789 \ No newline at end of file diff --git a/romanova_adelina_lab_2/data/data_2.txt b/romanova_adelina_lab_2/data/data_2.txt new file mode 100644 index 0000000..8f6577f --- /dev/null +++ b/romanova_adelina_lab_2/data/data_2.txt @@ -0,0 +1,4 @@ +234 +125 +764 +789 \ No newline at end of file diff --git a/romanova_adelina_lab_2/data/data_3.txt b/romanova_adelina_lab_2/data/data_3.txt new file mode 100644 index 0000000..6dbce3a --- /dev/null +++ b/romanova_adelina_lab_2/data/data_3.txt @@ -0,0 +1,4 @@ +8903 +324 +232 +233 diff --git a/romanova_adelina_lab_2/docker-compose.yml b/romanova_adelina_lab_2/docker-compose.yml new file mode 100644 index 0000000..0220489 --- /dev/null +++ b/romanova_adelina_lab_2/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3" +services: + worker_1: + build: + context: ./worker_1 + dockerfile: Dockerfile + volumes: + - ./data:/var/data + - ./result:/var/result + + worker_2: + depends_on: + - worker_1 + build: + context: ./worker_2 + dockerfile: Dockerfile + volumes: + - ./result:/var/data + - ./result:/var/result diff --git a/romanova_adelina_lab_2/result/data.txt b/romanova_adelina_lab_2/result/data.txt new file mode 100644 index 0000000..6dbce3a --- /dev/null +++ b/romanova_adelina_lab_2/result/data.txt @@ -0,0 +1,4 @@ +8903 +324 +232 +233 diff --git a/romanova_adelina_lab_2/result/result.txt b/romanova_adelina_lab_2/result/result.txt new file mode 100644 index 0000000..29986ff --- /dev/null +++ b/romanova_adelina_lab_2/result/result.txt @@ -0,0 +1 @@ +2074399 \ No newline at end of file diff --git a/romanova_adelina_lab_2/worker_1/Dockerfile b/romanova_adelina_lab_2/worker_1/Dockerfile new file mode 100644 index 0000000..7528506 --- /dev/null +++ b/romanova_adelina_lab_2/worker_1/Dockerfile @@ -0,0 +1,4 @@ +FROM python:3.11 +WORKDIR /app +COPY . . +CMD ["python", "worker_1.py"] diff --git a/romanova_adelina_lab_2/worker_1/worker_1.py b/romanova_adelina_lab_2/worker_1/worker_1.py new file mode 100644 index 0000000..944d425 --- /dev/null +++ b/romanova_adelina_lab_2/worker_1/worker_1.py @@ -0,0 +1,23 @@ +import os +import shutil + +def find_largest_file(directory): + files = os.listdir(directory) + if not files: + return None + + largest_file = max(files, key=lambda f: os.path.getsize(os.path.join(directory, f))) + return largest_file + +def main(): + data_dir = '/var/data' + result_file = '/var/result/data.txt' + largest_file = find_largest_file(data_dir) + + if largest_file: + shutil.copy2(os.path.join(data_dir, largest_file), result_file) + else: + print('No files to copy.') + +if __name__ == "__main__": + main() diff --git a/romanova_adelina_lab_2/worker_2/Dockerfile b/romanova_adelina_lab_2/worker_2/Dockerfile new file mode 100644 index 0000000..c4aa6ee --- /dev/null +++ b/romanova_adelina_lab_2/worker_2/Dockerfile @@ -0,0 +1,4 @@ +FROM python:3.11 +WORKDIR /app +COPY . . +CMD ["python", "worker_2.py"] diff --git a/romanova_adelina_lab_2/worker_2/worker_2.py b/romanova_adelina_lab_2/worker_2/worker_2.py new file mode 100644 index 0000000..8853c8f --- /dev/null +++ b/romanova_adelina_lab_2/worker_2/worker_2.py @@ -0,0 +1,32 @@ + + + +def calculate_product_of_first_and_last_numbers(file_path): + try: + with open(file_path, 'r') as file: + numbers = [int(line.strip()) for line in file.readlines()] + + if len(numbers) >= 2: + product = numbers[0] * numbers[-1] + print(f"Результат: {numbers[0]} * {numbers[-1]} = {product}") + return product + else: + return None + + except Exception as e: + return None + +def main(): + input_file_path = "/var/data/data.txt" + output_file_path = "/var/result/result.txt" + + result = calculate_product_of_first_and_last_numbers(input_file_path) + + if result is not None: + with open(output_file_path, 'w') as output_file: + output_file.write(str(result)) + else: + print("No result to save.") + +if __name__ == "__main__": + main() -- 2.25.1 From d4007d8cc675038a6c38a872d1be22229ec2caf2 Mon Sep 17 00:00:00 2001 From: enuementtt Date: Fri, 24 Nov 2023 19:07:17 +0400 Subject: [PATCH 2/2] romanova_adelina_lab_2 is ready --- romanova_adelina_lab_2/1.png | Bin 0 -> 23915 bytes romanova_adelina_lab_2/2.png | Bin 0 -> 35276 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 romanova_adelina_lab_2/1.png create mode 100644 romanova_adelina_lab_2/2.png diff --git a/romanova_adelina_lab_2/1.png b/romanova_adelina_lab_2/1.png new file mode 100644 index 0000000000000000000000000000000000000000..f27df08f614ea5a04920c4b4d252bad465f069a4 GIT binary patch literal 23915 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 literal 0 HcmV?d00001 diff --git a/romanova_adelina_lab_2/2.png b/romanova_adelina_lab_2/2.png new file mode 100644 index 0000000000000000000000000000000000000000..5335035213c0882ac0bc4ff20e718b5178019af4 GIT binary patch literal 35276 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 L-J5yx#sU8eb5%{x literal 0 HcmV?d00001 -- 2.25.1