diff --git a/antonov_dmitry_lab_2/README.md b/antonov_dmitry_lab_2/README.md new file mode 100644 index 0000000..facc4e5 --- /dev/null +++ b/antonov_dmitry_lab_2/README.md @@ -0,0 +1,68 @@ +# Лабораторная работа №2 - Разработка простейшего распределённого приложения + +Согласно вашему варианту (выбирайте любой) разработать два приложения такие, +что результат первого является исходными данными для второго +Требования и docker-compose: + +Несколько контейнеров. +Хотя бы один volume. +Хотя бы один порт, проброшенный на хост. +При этом разворачивание системы должно пройти до конца. Например, должен быть создан +администратор и система должна корректно функционировать. Это необходимо будет предоставить +в отчёте, поэтому не забывайте делать скриншоты. + +# Выбранные сервисы + +* mediawiki - движок вики +* drupal - популярная система управления контентом +* wordpress - популярная система управления контентом. + +# Запуск + +Командой в консоли проекта "docker-compose up -d" + +# Описание работы: +Развернули три сервиса плюс базу данных к ним. +Подробное описание для docker-compose дано в комментариях. + +1. mediawiki: +- доступ на http://localhost:8080/ + +2. drupal: +- доступ на http://localhost:8081/ + +3. wordpress: +- доступ на http://localhost:8082/ + +

+

Старт сервисов
+ +

+

+

Сервисы
+ +

+

+

Images
+ +

+

+

Volumes
+ +

+

+

Сервис 1
+ +

+

+

Сервис 2
+ +

+

+

Сервис 3
+ +

+ +# Ссылка на видео +https://disk.yandex.ru/i/nG5KrHy_DsQxuw + diff --git a/antonov_dmitry_lab_2/app1/Dockerfile b/antonov_dmitry_lab_2/app1/Dockerfile new file mode 100644 index 0000000..23d93e4 --- /dev/null +++ b/antonov_dmitry_lab_2/app1/Dockerfile @@ -0,0 +1,15 @@ +FROM python:3.9 + +WORKDIR /app + +COPY requirements.txt . + +RUN pip install -r requirements.txt + +COPY . . + +COPY var/data /var/data + +COPY var/result /var/result + +CMD ["python", "app.py"] diff --git a/antonov_dmitry_lab_2/app1/app.py b/antonov_dmitry_lab_2/app1/app.py new file mode 100644 index 0000000..a4d470e --- /dev/null +++ b/antonov_dmitry_lab_2/app1/app.py @@ -0,0 +1,27 @@ +from flask import Flask +import os + +app = Flask(__name__) + + +@app.route('/') +def generate_data(): + # из первых строк всех файлов каталога /var/data + data_dir = '/var/data' + # формирует файл /var/result/data.txt + result_file = '/var/result/data.txt' + + lines = [] + + for filename in os.listdir(data_dir): + with open(os.path.join(data_dir, filename), 'r') as file: + lines.append(file.readline()) + + with open(result_file, 'w') as result: + result.write('\n'.join(lines)) + + return 'Файл успешно сформирован!\n' + str(lines) + + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5000) diff --git a/antonov_dmitry_lab_2/app1/requirements.txt b/antonov_dmitry_lab_2/app1/requirements.txt new file mode 100644 index 0000000..08430b4 --- /dev/null +++ b/antonov_dmitry_lab_2/app1/requirements.txt @@ -0,0 +1,2 @@ +Flask==2.2.2 +Werkzeug==2.3.7 \ No newline at end of file diff --git a/antonov_dmitry_lab_2/app1/var/data/file1.txt b/antonov_dmitry_lab_2/app1/var/data/file1.txt new file mode 100644 index 0000000..7a754f4 --- /dev/null +++ b/antonov_dmitry_lab_2/app1/var/data/file1.txt @@ -0,0 +1,2 @@ +1 +2 \ No newline at end of file diff --git a/antonov_dmitry_lab_2/app1/var/data/file2.txt b/antonov_dmitry_lab_2/app1/var/data/file2.txt new file mode 100644 index 0000000..bf0d87a --- /dev/null +++ b/antonov_dmitry_lab_2/app1/var/data/file2.txt @@ -0,0 +1 @@ +4 \ No newline at end of file diff --git a/antonov_dmitry_lab_2/app1/var/result/data.txt b/antonov_dmitry_lab_2/app1/var/result/data.txt new file mode 100644 index 0000000..c95d84f --- /dev/null +++ b/antonov_dmitry_lab_2/app1/var/result/data.txt @@ -0,0 +1,5 @@ +1 + +1 + +4 \ No newline at end of file diff --git a/antonov_dmitry_lab_2/app2/Dockerfile b/antonov_dmitry_lab_2/app2/Dockerfile new file mode 100644 index 0000000..23d93e4 --- /dev/null +++ b/antonov_dmitry_lab_2/app2/Dockerfile @@ -0,0 +1,15 @@ +FROM python:3.9 + +WORKDIR /app + +COPY requirements.txt . + +RUN pip install -r requirements.txt + +COPY . . + +COPY var/data /var/data + +COPY var/result /var/result + +CMD ["python", "app.py"] diff --git a/antonov_dmitry_lab_2/app2/app.py b/antonov_dmitry_lab_2/app2/app.py new file mode 100644 index 0000000..f9464d1 --- /dev/null +++ b/antonov_dmitry_lab_2/app2/app.py @@ -0,0 +1,28 @@ +from flask import Flask + +app = Flask(__name__) + + +@app.route('/') +def process_data(): + # ищет наименьшее число из файла /var/data/data.txt + data_file = '/var/data/data.txt' + # и сохраняет его третью степень в /var/result/result.txt + result_file = '/var/result/result.txt' + + with open(data_file, 'r') as file: + numbers = [int(line.strip()) for line in file] + + smallest_number = min(numbers) + # выводит наименьшее число + print(smallest_number) + result = smallest_number ** 3 + + with open(result_file, 'w') as file: + file.write(str(result)) + + return 'Результат успешно сохранен!\n' + + +if __name__ == '__main__': + app.run(host='0.0.0.0', port=5000) diff --git a/antonov_dmitry_lab_2/app2/requirements.txt b/antonov_dmitry_lab_2/app2/requirements.txt new file mode 100644 index 0000000..08430b4 --- /dev/null +++ b/antonov_dmitry_lab_2/app2/requirements.txt @@ -0,0 +1,2 @@ +Flask==2.2.2 +Werkzeug==2.3.7 \ No newline at end of file diff --git a/antonov_dmitry_lab_2/app2/var/data/data.txt b/antonov_dmitry_lab_2/app2/var/data/data.txt new file mode 100644 index 0000000..b46f59e --- /dev/null +++ b/antonov_dmitry_lab_2/app2/var/data/data.txt @@ -0,0 +1,2 @@ +1 +4 \ No newline at end of file diff --git a/antonov_dmitry_lab_2/app2/var/result/result.txt b/antonov_dmitry_lab_2/app2/var/result/result.txt new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/antonov_dmitry_lab_2/app2/var/result/result.txt @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/antonov_dmitry_lab_2/docker-compose.yml b/antonov_dmitry_lab_2/docker-compose.yml new file mode 100644 index 0000000..5195965 --- /dev/null +++ b/antonov_dmitry_lab_2/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3' + +services: + app1: + build: ./app1 + + app2: + build: ./app2 diff --git a/antonov_dmitry_lab_2/screens/img.png b/antonov_dmitry_lab_2/screens/img.png new file mode 100644 index 0000000..071e08a Binary files /dev/null and b/antonov_dmitry_lab_2/screens/img.png differ diff --git a/antonov_dmitry_lab_2/screens/img_1.png b/antonov_dmitry_lab_2/screens/img_1.png new file mode 100644 index 0000000..c9b6bbb Binary files /dev/null and b/antonov_dmitry_lab_2/screens/img_1.png differ