From 36c429cb4f9a27bcd8f158333ef9d8596bc4e9a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D1=80=D0=B3=D0=B5=D0=B5=D0=B2?= Date: Sat, 13 Jan 2024 19:17:58 +0400 Subject: [PATCH 1/5] init --- sergeev_evgenii_lab_2/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sergeev_evgenii_lab_2/README.md diff --git a/sergeev_evgenii_lab_2/README.md b/sergeev_evgenii_lab_2/README.md new file mode 100644 index 0000000..e69de29 -- 2.25.1 From ea990fd848380a8e32e5680dd580dd5db4802cd2 Mon Sep 17 00:00:00 2001 From: sergeevevgen Date: Tue, 16 Jan 2024 14:52:17 +0400 Subject: [PATCH 2/5] + --- sergeev_evgenii_lab_2/README.md | 38 ++++++++++++++++++++++ sergeev_evgenii_lab_2/docker-compose.yml | 0 sergeev_evgenii_lab_2/service1/Dockerfile | 4 +++ sergeev_evgenii_lab_2/service1/index.html | 12 +++++++ sergeev_evgenii_lab_2/service1/service1.py | 36 ++++++++++++++++++++ sergeev_evgenii_lab_2/service2/Dockerfile | 4 +++ sergeev_evgenii_lab_2/service2/index.html | 12 +++++++ sergeev_evgenii_lab_2/service2/result.html | 10 ++++++ sergeev_evgenii_lab_2/service2/service2.py | 0 9 files changed, 116 insertions(+) create mode 100644 sergeev_evgenii_lab_2/docker-compose.yml create mode 100644 sergeev_evgenii_lab_2/service1/Dockerfile create mode 100644 sergeev_evgenii_lab_2/service1/index.html create mode 100644 sergeev_evgenii_lab_2/service1/service1.py create mode 100644 sergeev_evgenii_lab_2/service2/Dockerfile create mode 100644 sergeev_evgenii_lab_2/service2/index.html create mode 100644 sergeev_evgenii_lab_2/service2/result.html create mode 100644 sergeev_evgenii_lab_2/service2/service2.py diff --git a/sergeev_evgenii_lab_2/README.md b/sergeev_evgenii_lab_2/README.md index e69de29..0a5d9cc 100644 --- a/sergeev_evgenii_lab_2/README.md +++ b/sergeev_evgenii_lab_2/README.md @@ -0,0 +1,38 @@ +## Задание +Развернуть два взаимосвязанных сервиса по варианту: + +Вариант № 4 для первой программы: +* Сервис формирует файл /var/result/data.txt так, что каждая строка файла - количество символов в именах файлов из каталога /var/data. +Вариант № 2 для второй программы: +* Сервис ищет наименьшее число из файла /var/data/data.txt и сохраняет его третью степень в /var/result/result.txt. +## Выполнение +Были написаны два сервиса на языке python с использованием технологии flask. +Они выводят на страницу кнопки, при нажатии на которые происходит соответствующие действия по заданию + +Для сервисов прописаны файлы Dockerfile, описывающие создание контейнеров: +* Для обоих контейнеров выбирается Python 9. +* Оба контейнера проявляют порты, на которых работает приложение: 8081 для первого и 8082 для второго. +* В контейнерах создаются папки /work для файлов скриптов, папки /var/result для обоих сервисов и /var/data для первого скрипта. +* В оба контейнера устанавливается пакет Flask. +* Выбирается рабочая директория /work и туда копируются файлы скриптов. +* Командой запускаются сами скрипты. + +Общий yaml-файл развёртки был настроен следующим образом: +* блок services, где перечислены разворачиваемые сервисы. +* для каждого сервиса прописан build, где объявляется его папка и докерфайл создания. +* для каждого сервиса прописано отображение портов на такие же хоста. +* для каждого сервиса прописано монтирование нужных папок хостовой системы как соответствующих папок внутри контейнеров. + +## Результат +Пример выполнения: + +Исходные данные: три файла в папке /var/data, средний файл имеет наибольшее количество строк и наибольшее число 40. + +Ход работы: нажатие кнопок на странице первого сервиса, потом - второго. +Запросы: +![Запросы](screens/requests.png) +Выходные данные: средний файл, перенесённый в /var/result/data.txt, файл result.txt там же с результатом вычислений - числом 1600. Результат выведен на страницу второго сервиса: +![Результат](screens/res.png) + +## Ссылка на видео +https://drive.google.com/file/d/1ZI1FeQ8BqPR-e_dKnUlNW7V5A39ZlTYu/view?usp=drive_link \ No newline at end of file diff --git a/sergeev_evgenii_lab_2/docker-compose.yml b/sergeev_evgenii_lab_2/docker-compose.yml new file mode 100644 index 0000000..e69de29 diff --git a/sergeev_evgenii_lab_2/service1/Dockerfile b/sergeev_evgenii_lab_2/service1/Dockerfile new file mode 100644 index 0000000..c33b0f9 --- /dev/null +++ b/sergeev_evgenii_lab_2/service1/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:latest +LABEL authors="User" + +ENTRYPOINT ["top", "-b"] \ No newline at end of file diff --git a/sergeev_evgenii_lab_2/service1/index.html b/sergeev_evgenii_lab_2/service1/index.html new file mode 100644 index 0000000..c0b0956 --- /dev/null +++ b/sergeev_evgenii_lab_2/service1/index.html @@ -0,0 +1,12 @@ + + + + + Сервис № 1 + + +
+ +
+ + diff --git a/sergeev_evgenii_lab_2/service1/service1.py b/sergeev_evgenii_lab_2/service1/service1.py new file mode 100644 index 0000000..20b0002 --- /dev/null +++ b/sergeev_evgenii_lab_2/service1/service1.py @@ -0,0 +1,36 @@ +from flask import Flask, redirect, render_template +import os + +app = Flask(__name__) + + +@app.route('/') +def home(): + return render_template("index.html") + + +@app.route('/ex') +def do(): + data_dir = '/var/data' + path_result_file = '/var/result/data.txt' + + try: + # Получаем список файлов в указанном каталоге + files = os.listdir(data_dir) + + # Формируем путь к каждому файлу и считаем количество символов в именах + characters_count_list = [len(file) for file in files] + + # Пишем результат в файл data.txt + with open(path_result_file, 'w') as result_file: + for count in characters_count_list: + result_file.write(f'{count}\n') + + print(f'Файл успешно создан.') + except Exception as e: + print(f'Произошла ошибка: {e}') + + return redirect("/") + + +app.run(host='0.0.0.0', port=8081) diff --git a/sergeev_evgenii_lab_2/service2/Dockerfile b/sergeev_evgenii_lab_2/service2/Dockerfile new file mode 100644 index 0000000..c33b0f9 --- /dev/null +++ b/sergeev_evgenii_lab_2/service2/Dockerfile @@ -0,0 +1,4 @@ +FROM ubuntu:latest +LABEL authors="User" + +ENTRYPOINT ["top", "-b"] \ No newline at end of file diff --git a/sergeev_evgenii_lab_2/service2/index.html b/sergeev_evgenii_lab_2/service2/index.html new file mode 100644 index 0000000..8532127 --- /dev/null +++ b/sergeev_evgenii_lab_2/service2/index.html @@ -0,0 +1,12 @@ + + + + + Сервис № 2 + + +
+ +
+ + diff --git a/sergeev_evgenii_lab_2/service2/result.html b/sergeev_evgenii_lab_2/service2/result.html new file mode 100644 index 0000000..836015b --- /dev/null +++ b/sergeev_evgenii_lab_2/service2/result.html @@ -0,0 +1,10 @@ + + + + + Результат работы + + +

Результат: {{num}}

+ + diff --git a/sergeev_evgenii_lab_2/service2/service2.py b/sergeev_evgenii_lab_2/service2/service2.py new file mode 100644 index 0000000..e69de29 -- 2.25.1 From bb78e6823bf90d8ab4168e9f2162e666f0f7030e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D1=80=D0=B3=D0=B5=D0=B5=D0=B2?= Date: Tue, 16 Jan 2024 16:05:42 +0400 Subject: [PATCH 3/5] done! --- sergeev_evgenii_lab_2/README.md | 2 +- sergeev_evgenii_lab_2/docker-compose.yml | 20 +++++++++ sergeev_evgenii_lab_2/service1/Dockerfile | 17 ++++++-- sergeev_evgenii_lab_2/service1/service1.py | 9 ++-- sergeev_evgenii_lab_2/service2/Dockerfile | 16 ++++++-- sergeev_evgenii_lab_2/service2/service2.py | 43 ++++++++++++++++++++ sergeev_evgenii_lab_2/var/data/1 | 0 sergeev_evgenii_lab_2/var/data/123 | 0 sergeev_evgenii_lab_2/var/data/tutmnogobukv | 0 sergeev_evgenii_lab_2/var/data/zdestozhe.txt | 0 sergeev_evgenii_lab_2/var/result/data.txt | 4 ++ sergeev_evgenii_lab_2/var/result/result.txt | 1 + 12 files changed, 102 insertions(+), 10 deletions(-) create mode 100644 sergeev_evgenii_lab_2/var/data/1 create mode 100644 sergeev_evgenii_lab_2/var/data/123 create mode 100644 sergeev_evgenii_lab_2/var/data/tutmnogobukv create mode 100644 sergeev_evgenii_lab_2/var/data/zdestozhe.txt create mode 100644 sergeev_evgenii_lab_2/var/result/data.txt create mode 100644 sergeev_evgenii_lab_2/var/result/result.txt diff --git a/sergeev_evgenii_lab_2/README.md b/sergeev_evgenii_lab_2/README.md index 0a5d9cc..98e84b5 100644 --- a/sergeev_evgenii_lab_2/README.md +++ b/sergeev_evgenii_lab_2/README.md @@ -3,7 +3,7 @@ Вариант № 4 для первой программы: * Сервис формирует файл /var/result/data.txt так, что каждая строка файла - количество символов в именах файлов из каталога /var/data. -Вариант № 2 для второй программы: +Вариант № 2 для второй программы: * Сервис ищет наименьшее число из файла /var/data/data.txt и сохраняет его третью степень в /var/result/result.txt. ## Выполнение Были написаны два сервиса на языке python с использованием технологии flask. diff --git a/sergeev_evgenii_lab_2/docker-compose.yml b/sergeev_evgenii_lab_2/docker-compose.yml index e69de29..cc3b6c7 100644 --- a/sergeev_evgenii_lab_2/docker-compose.yml +++ b/sergeev_evgenii_lab_2/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3' + +services: + service1: + build: + context: ./service1 + ports: + - "8081:8081" + volumes: + - .\var\data:/var/data + - .\var\result:/var/result + + service2: + build: + context: ./service2 + ports: + - "8082:8082" + volumes: + - ./var/data:/var/data + - ./var/result:/var/result \ No newline at end of file diff --git a/sergeev_evgenii_lab_2/service1/Dockerfile b/sergeev_evgenii_lab_2/service1/Dockerfile index c33b0f9..6379a70 100644 --- a/sergeev_evgenii_lab_2/service1/Dockerfile +++ b/sergeev_evgenii_lab_2/service1/Dockerfile @@ -1,4 +1,15 @@ -FROM ubuntu:latest -LABEL authors="User" +FROM python:3.11 -ENTRYPOINT ["top", "-b"] \ No newline at end of file +ENV LISTEN_PORT=8081 +EXPOSE 8081 + +RUN ["mkdir", "/work"] +RUN ["mkdir", "/var/data"] +RUN ["mkdir", "/var/result"] +RUN pip install Flask + +WORKDIR /work + +COPY index.html service1.py ./ + +CMD ["python", "service1.py"] \ No newline at end of file diff --git a/sergeev_evgenii_lab_2/service1/service1.py b/sergeev_evgenii_lab_2/service1/service1.py index 20b0002..8a9e63f 100644 --- a/sergeev_evgenii_lab_2/service1/service1.py +++ b/sergeev_evgenii_lab_2/service1/service1.py @@ -1,7 +1,7 @@ from flask import Flask, redirect, render_template import os -app = Flask(__name__) +app = Flask(__name__, template_folder='') @app.route('/') @@ -11,8 +11,11 @@ def home(): @app.route('/ex') def do(): - data_dir = '/var/data' - path_result_file = '/var/result/data.txt' + current_directory = os.getcwd() + directory_elements = current_directory.split(os.path.sep) # Разделяем по разделителю каталогов + cur_d = os.path.sep.join(directory_elements[:-1]) + data_dir = cur_d + '/var/data' + path_result_file = cur_d + '/var/result/data.txt' try: # Получаем список файлов в указанном каталоге diff --git a/sergeev_evgenii_lab_2/service2/Dockerfile b/sergeev_evgenii_lab_2/service2/Dockerfile index c33b0f9..339421e 100644 --- a/sergeev_evgenii_lab_2/service2/Dockerfile +++ b/sergeev_evgenii_lab_2/service2/Dockerfile @@ -1,4 +1,14 @@ -FROM ubuntu:latest -LABEL authors="User" +FROM python:3.11 -ENTRYPOINT ["top", "-b"] \ No newline at end of file +ENV LISTEN_PORT=8082 +EXPOSE 8082 + +RUN ["mkdir", "/work"] +RUN ["mkdir", "/var/result"] +RUN pip install Flask + +WORKDIR /work + +COPY index.html result.html service2.py ./ + +CMD ["python", "service2.py"] \ No newline at end of file diff --git a/sergeev_evgenii_lab_2/service2/service2.py b/sergeev_evgenii_lab_2/service2/service2.py index e69de29..f6fde43 100644 --- a/sergeev_evgenii_lab_2/service2/service2.py +++ b/sergeev_evgenii_lab_2/service2/service2.py @@ -0,0 +1,43 @@ +import os +from flask import Flask, render_template + +app = Flask(__name__, template_folder='') + + +@app.route('/') +def home(): + return render_template("index.html") + + +@app.route('/ex') +def do(): + current_directory = os.getcwd() + directory_elements = current_directory.split(os.path.sep) # Разделяем по разделителю каталогов + cur_d = os.path.sep.join(directory_elements[:-1]) + path_data_file = cur_d + '/var/result/data.txt' + path_result_file = cur_d + '/var/result/result.txt' + + min_number = 0 + try: + # Чтение чисел из файла + with open(path_data_file, 'r') as file: + numbers = [float(line.strip()) for line in file] + + # Поиск минимального числа + min_number = min(numbers) + + # Возведение минимального числа в третью степень + result = min_number ** 3 + + # Запись результата в файл + with open(path_result_file, 'w') as result_file: + result_file.write(str(result)) + + print(f'Наименьшее число из файла {path_data_file} в третьей степени сохранено в {path_result_file}.') + except Exception as e: + print(f'Произошла ошибка: {e}') + + return render_template("result.html", num=min_number) + + +app.run(host='0.0.0.0', port=8082) diff --git a/sergeev_evgenii_lab_2/var/data/1 b/sergeev_evgenii_lab_2/var/data/1 new file mode 100644 index 0000000..e69de29 diff --git a/sergeev_evgenii_lab_2/var/data/123 b/sergeev_evgenii_lab_2/var/data/123 new file mode 100644 index 0000000..e69de29 diff --git a/sergeev_evgenii_lab_2/var/data/tutmnogobukv b/sergeev_evgenii_lab_2/var/data/tutmnogobukv new file mode 100644 index 0000000..e69de29 diff --git a/sergeev_evgenii_lab_2/var/data/zdestozhe.txt b/sergeev_evgenii_lab_2/var/data/zdestozhe.txt new file mode 100644 index 0000000..e69de29 diff --git a/sergeev_evgenii_lab_2/var/result/data.txt b/sergeev_evgenii_lab_2/var/result/data.txt new file mode 100644 index 0000000..467b4da --- /dev/null +++ b/sergeev_evgenii_lab_2/var/result/data.txt @@ -0,0 +1,4 @@ +1 +3 +12 +13 diff --git a/sergeev_evgenii_lab_2/var/result/result.txt b/sergeev_evgenii_lab_2/var/result/result.txt new file mode 100644 index 0000000..9f8e9b6 --- /dev/null +++ b/sergeev_evgenii_lab_2/var/result/result.txt @@ -0,0 +1 @@ +1.0 \ No newline at end of file -- 2.25.1 From 84bd5277a9f326577d35058346bc6339835aa3b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=95=D0=B2=D0=B3=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=A1=D0=B5?= =?UTF-8?q?=D1=80=D0=B3=D0=B5=D0=B5=D0=B2?= Date: Tue, 16 Jan 2024 16:57:20 +0400 Subject: [PATCH 4/5] done! --- sergeev_evgenii_lab_2/README.md | 36 +++++++++++--------- sergeev_evgenii_lab_2/images/containers.png | Bin 0 -> 21297 bytes sergeev_evgenii_lab_2/images/exercise1.png | Bin 0 -> 4019 bytes sergeev_evgenii_lab_2/images/exercise2.png | Bin 0 -> 4980 bytes sergeev_evgenii_lab_2/var/result/data.txt | 4 --- sergeev_evgenii_lab_2/var/result/result.txt | 1 - 6 files changed, 20 insertions(+), 21 deletions(-) create mode 100644 sergeev_evgenii_lab_2/images/containers.png create mode 100644 sergeev_evgenii_lab_2/images/exercise1.png create mode 100644 sergeev_evgenii_lab_2/images/exercise2.png delete mode 100644 sergeev_evgenii_lab_2/var/result/data.txt delete mode 100644 sergeev_evgenii_lab_2/var/result/result.txt diff --git a/sergeev_evgenii_lab_2/README.md b/sergeev_evgenii_lab_2/README.md index 98e84b5..0a1f0b9 100644 --- a/sergeev_evgenii_lab_2/README.md +++ b/sergeev_evgenii_lab_2/README.md @@ -10,29 +10,33 @@ Они выводят на страницу кнопки, при нажатии на которые происходит соответствующие действия по заданию Для сервисов прописаны файлы Dockerfile, описывающие создание контейнеров: -* Для обоих контейнеров выбирается Python 9. -* Оба контейнера проявляют порты, на которых работает приложение: 8081 для первого и 8082 для второго. -* В контейнерах создаются папки /work для файлов скриптов, папки /var/result для обоих сервисов и /var/data для первого скрипта. -* В оба контейнера устанавливается пакет Flask. -* Выбирается рабочая директория /work и туда копируются файлы скриптов. -* Командой запускаются сами скрипты. +* Для обоих контейнеров выбирается Python 11 +* На оба контейнера пробрасываются порты, на которых работает приложение: 8081 для первого и 8082 для второго +* Внутри контейнеров создаются папки /work для файлов скриптов, папки /var/result, /var/data для обоих сервисов +* В оба контейнера устанавливается фреймворк Flask +* Выбирается рабочая директория /work и туда копируются файлы скриптов +* Командой запускаются сами скрипты -Общий yaml-файл развёртки был настроен следующим образом: +Общий yml-файл настроен следующим образом: * блок services, где перечислены разворачиваемые сервисы. -* для каждого сервиса прописан build, где объявляется его папка и докерфайл создания. -* для каждого сервиса прописано отображение портов на такие же хоста. -* для каждого сервиса прописано монтирование нужных папок хостовой системы как соответствующих папок внутри контейнеров. +* для каждого сервиса прописан build, где обозначается его папка +* для каждого сервиса прописано пробрасывание портов на хостовую машину +* для каждого сервиса прописано отображение внутриконтейнерных папок на хостовые ## Результат Пример выполнения: -Исходные данные: три файла в папке /var/data, средний файл имеет наибольшее количество строк и наибольшее число 40. +Исходные данные: четыре файла в папке /var/data с разным по длине названием -Ход работы: нажатие кнопок на странице первого сервиса, потом - второго. -Запросы: -![Запросы](screens/requests.png) -Выходные данные: средний файл, перенесённый в /var/result/data.txt, файл result.txt там же с результатом вычислений - числом 1600. Результат выведен на страницу второго сервиса: -![Результат](screens/res.png) +Ход работы: нажатие кнопок на странице первого сервиса, потом - второго +Созданные контейнеры: +![Контейнеры](images/containers.png) + +Страница первого задания: +![Страница первого задания](images/exercise1.png) + +Выходные данные при выполнении второго задания: +![Второе задание. Результат](images/exercise2.png) ## Ссылка на видео https://drive.google.com/file/d/1ZI1FeQ8BqPR-e_dKnUlNW7V5A39ZlTYu/view?usp=drive_link \ No newline at end of file diff --git a/sergeev_evgenii_lab_2/images/containers.png b/sergeev_evgenii_lab_2/images/containers.png new file mode 100644 index 0000000000000000000000000000000000000000..63af3d573173df3286a40f2586d0f7d1af1c5e91 GIT binary patch literal 21297 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 E0XDr6hX4Qo literal 0 HcmV?d00001 diff --git a/sergeev_evgenii_lab_2/images/exercise1.png b/sergeev_evgenii_lab_2/images/exercise1.png new file mode 100644 index 0000000000000000000000000000000000000000..b808539511f45c98f4cc85ddaa2ac8a045d78661 GIT binary patch literal 4019 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 EA0DEp4gdfE literal 0 HcmV?d00001 diff --git a/sergeev_evgenii_lab_2/var/result/data.txt b/sergeev_evgenii_lab_2/var/result/data.txt deleted file mode 100644 index 467b4da..0000000 --- a/sergeev_evgenii_lab_2/var/result/data.txt +++ /dev/null @@ -1,4 +0,0 @@ -1 -3 -12 -13 diff --git a/sergeev_evgenii_lab_2/var/result/result.txt b/sergeev_evgenii_lab_2/var/result/result.txt deleted file mode 100644 index 9f8e9b6..0000000 --- a/sergeev_evgenii_lab_2/var/result/result.txt +++ /dev/null @@ -1 +0,0 @@ -1.0 \ No newline at end of file -- 2.25.1 From 46f2a8da947d2bec221aef25331f6d0f8b504015 Mon Sep 17 00:00:00 2001 From: sergeevevgen Date: Tue, 16 Jan 2024 17:12:52 +0400 Subject: [PATCH 5/5] + --- sergeev_evgenii_lab_2/README.md | 2 +- sergeev_evgenii_lab_2/docker-compose.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/sergeev_evgenii_lab_2/README.md b/sergeev_evgenii_lab_2/README.md index 0a1f0b9..0f654c8 100644 --- a/sergeev_evgenii_lab_2/README.md +++ b/sergeev_evgenii_lab_2/README.md @@ -39,4 +39,4 @@ ![Второе задание. Результат](images/exercise2.png) ## Ссылка на видео -https://drive.google.com/file/d/1ZI1FeQ8BqPR-e_dKnUlNW7V5A39ZlTYu/view?usp=drive_link \ No newline at end of file +https://youtu.be/CEAAr0xolxM \ No newline at end of file diff --git a/sergeev_evgenii_lab_2/docker-compose.yml b/sergeev_evgenii_lab_2/docker-compose.yml index cc3b6c7..d634e9f 100644 --- a/sergeev_evgenii_lab_2/docker-compose.yml +++ b/sergeev_evgenii_lab_2/docker-compose.yml @@ -16,5 +16,4 @@ services: ports: - "8082:8082" volumes: - - ./var/data:/var/data - ./var/result:/var/result \ No newline at end of file -- 2.25.1