From 71bc735b260b27cc683e3b6d6d5a838940cab8ea Mon Sep 17 00:00:00 2001 From: rita Date: Thu, 14 Dec 2023 01:57:37 +0400 Subject: [PATCH] mashkova_margarita_lab_2 ready --- mashkova_margarita_lab_2/README.md | 98 ++++++++++++++++++ mashkova_margarita_lab_2/build_images.png | Bin 0 -> 9516 bytes mashkova_margarita_lab_2/containers.png | Bin 0 -> 21251 bytes mashkova_margarita_lab_2/data/digits.txt | 0 mashkova_margarita_lab_2/data/integers.txt | 0 mashkova_margarita_lab_2/data/numbers.txt | 0 mashkova_margarita_lab_2/docker-compose.yml | 20 ++++ mashkova_margarita_lab_2/images.png | Bin 0 -> 17548 bytes mashkova_margarita_lab_2/result/data.txt | 3 + mashkova_margarita_lab_2/result/result.txt | 1 + mashkova_margarita_lab_2/results.png | Bin 0 -> 29843 bytes mashkova_margarita_lab_2/worker-1/Dockerfile | 13 +++ .../worker-1/src/Main.java | 22 ++++ mashkova_margarita_lab_2/worker-2/Dockerfile | 13 +++ .../worker-2/src/Main.java | 48 +++++++++ 15 files changed, 218 insertions(+) create mode 100644 mashkova_margarita_lab_2/README.md create mode 100644 mashkova_margarita_lab_2/build_images.png create mode 100644 mashkova_margarita_lab_2/containers.png create mode 100644 mashkova_margarita_lab_2/data/digits.txt create mode 100644 mashkova_margarita_lab_2/data/integers.txt create mode 100644 mashkova_margarita_lab_2/data/numbers.txt create mode 100644 mashkova_margarita_lab_2/docker-compose.yml create mode 100644 mashkova_margarita_lab_2/images.png create mode 100644 mashkova_margarita_lab_2/result/data.txt create mode 100644 mashkova_margarita_lab_2/result/result.txt create mode 100644 mashkova_margarita_lab_2/results.png create mode 100644 mashkova_margarita_lab_2/worker-1/Dockerfile create mode 100644 mashkova_margarita_lab_2/worker-1/src/Main.java create mode 100644 mashkova_margarita_lab_2/worker-2/Dockerfile create mode 100644 mashkova_margarita_lab_2/worker-2/src/Main.java diff --git a/mashkova_margarita_lab_2/README.md b/mashkova_margarita_lab_2/README.md new file mode 100644 index 0000000..4d48565 --- /dev/null +++ b/mashkova_margarita_lab_2/README.md @@ -0,0 +1,98 @@ +# Лабораторная работа №2 +## ПИбд-42 Машкова Маргарита +## Задание +1. Согласно варианту разработать два приложения такие, что результат первого является исходными данными для второго. +2. Изучить файлы сборки образов docker и разработать их для созданных приложений. +3. Собрать файл `docker-compose.yml` для запуска приложений. Разобраться с монтированием каталогов из хост-системы. + +> Docker Compose использует файл docker-compose.yml для создания и запуска всех сервисов, определенных в конфигурации, +> с помощью одной команды. + +- Содержимое исходных файлов - целые числа. +- Результат выполнения программы 2 необходимо дополнительно вывести на экран. + +### Функциональность приложений: +- `worker-1` - Формирует файл `/var/result/data.txt` так, что каждая строка файла - количество символов в именах файлов +из каталога `/var/data`. +- `worker-2` - Ищет наименьшее число из файла `/var/result/data.txt` и сохраняет его третью степень +в `/var/result/result.txt`. + +## Запуск программы +В директории с файлом `docker-compose.yml` выполнить команду: +``` +docker-compose up -d +``` + +## Описание работы программы + +### Dockerfile сервиса `worker-1`: +``` +# Использование образа java +FROM openjdk:17 +# Создание директорий +RUN mkdir /var/data +RUN mkdir /var/result +# Рабочая директория +WORKDIR /app +# Копирование исходных файлов +COPY src/Main.java /app/Main.java +# Компиляция +RUN javac Main.java +# Запуск +CMD ["java", "Main"] +``` +Dockerfile сервиса `worker-2` аналогичен. + +### Полный файл конфигурации `docker-compose.yml`: +``` +version: '3' +services: + worker-1: + build: + context: /worker-1 + dockerfile: Dockerfile + container_name: worker-1 + volumes: # Монтирование + - .\data:/var/data + - .\result:/var/result + worker-2: + build: + context: /worker-2 + dockerfile: Dockerfile + container_name: worker-2 + depends_on: # Зависимость сервисов + - worker-1 + volumes: # Монтирование + - .\data:/var/data + - .\result:/var/result +``` + +## Запуск сервисов + +### Содержимое файлов: +Т.к. первой программе важно не содержимое файлов, а количество символов в их названиях, то файлы в директории `/data` +пустые. + +Названия файлов и количество символов в названии: +> - digits.txt (10) +> - integers.txt (12) +> - numbers.txt (11) + +Содержимое файлов каталога `/result`: +> - data.txt:
10
12
11 +> - result.txt: 1000 + +### Результат выполнения команды `docker-compose up -d`: +![Вывод в консоли](build_images.png) + +### Созданные образы: +![Созданные образы](images.png) + +### Созданные контейнеры: +![Созданные контейнеры](containers.png) + +### Результаты выполнения программ: +![results](results.png) + +Ссылка на видео: +https://youtu.be/8AG78ip0Bew diff --git a/mashkova_margarita_lab_2/build_images.png b/mashkova_margarita_lab_2/build_images.png new file mode 100644 index 0000000000000000000000000000000000000000..3cde9ebf5a2c3f31aca31592ecd36d0c328cdc89 GIT binary patch literal 9516 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 R^;*g5j`l7mYLJ0xe*x2s5C8xG literal 0 HcmV?d00001 diff --git a/mashkova_margarita_lab_2/data/digits.txt b/mashkova_margarita_lab_2/data/digits.txt new file mode 100644 index 0000000..e69de29 diff --git a/mashkova_margarita_lab_2/data/integers.txt b/mashkova_margarita_lab_2/data/integers.txt new file mode 100644 index 0000000..e69de29 diff --git a/mashkova_margarita_lab_2/data/numbers.txt b/mashkova_margarita_lab_2/data/numbers.txt new file mode 100644 index 0000000..e69de29 diff --git a/mashkova_margarita_lab_2/docker-compose.yml b/mashkova_margarita_lab_2/docker-compose.yml new file mode 100644 index 0000000..20d83db --- /dev/null +++ b/mashkova_margarita_lab_2/docker-compose.yml @@ -0,0 +1,20 @@ +version: '3' +services: + worker-1: + build: + context: /worker-1 + dockerfile: Dockerfile + container_name: worker-1 + volumes: # Монтирование + - .\data:/var/data + - .\result:/var/result + worker-2: + build: + context: /worker-2 + dockerfile: Dockerfile + container_name: worker-2 + depends_on: # Зависимость сервисов + - worker-1 + volumes: # Монтирование + - .\data:/var/data + - .\result:/var/result diff --git a/mashkova_margarita_lab_2/images.png b/mashkova_margarita_lab_2/images.png new file mode 100644 index 0000000000000000000000000000000000000000..10ec22b1007c638d7c95eed0b91e6364114a2026 GIT binary patch literal 17548 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 literal 0 HcmV?d00001 diff --git a/mashkova_margarita_lab_2/result/data.txt b/mashkova_margarita_lab_2/result/data.txt new file mode 100644 index 0000000..af6d1e4 --- /dev/null +++ b/mashkova_margarita_lab_2/result/data.txt @@ -0,0 +1,3 @@ +10 +12 +11 diff --git a/mashkova_margarita_lab_2/result/result.txt b/mashkova_margarita_lab_2/result/result.txt new file mode 100644 index 0000000..e37d32a --- /dev/null +++ b/mashkova_margarita_lab_2/result/result.txt @@ -0,0 +1 @@ +1000 \ No newline at end of file diff --git a/mashkova_margarita_lab_2/results.png b/mashkova_margarita_lab_2/results.png new file mode 100644 index 0000000000000000000000000000000000000000..3ee94f2fa3e889b271df3ab6bd2accd36aa0f6c3 GIT binary patch literal 29843 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≤5y6X3 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 literal 0 HcmV?d00001 diff --git a/mashkova_margarita_lab_2/worker-1/Dockerfile b/mashkova_margarita_lab_2/worker-1/Dockerfile new file mode 100644 index 0000000..188a9b8 --- /dev/null +++ b/mashkova_margarita_lab_2/worker-1/Dockerfile @@ -0,0 +1,13 @@ +# Использование образа java +FROM openjdk:17 +# Создание директорий +RUN mkdir /var/data +RUN mkdir /var/result +# Рабочая директория +WORKDIR /app +# Копирование исходных файлов +COPY src/Main.java /app/Main.java +# Компиляция +RUN javac Main.java +# Запуск +CMD ["java", "Main"] \ No newline at end of file diff --git a/mashkova_margarita_lab_2/worker-1/src/Main.java b/mashkova_margarita_lab_2/worker-1/src/Main.java new file mode 100644 index 0000000..1e9b3d4 --- /dev/null +++ b/mashkova_margarita_lab_2/worker-1/src/Main.java @@ -0,0 +1,22 @@ +import java.io.*; + +// Формирует файл `/var/result/data.txt` так, что каждая строка файла - количество символов в именах файлов из каталога `/var/data`. +public class Main { + public static void main(String[] args) { + File folder = new File("/var/data"); + File[] files = folder.listFiles(); + // Запись в файл /var/result/data.txt количества символов в именах файлов из каталога /var/data построчно + try { + BufferedWriter writer = new BufferedWriter(new FileWriter("/var/result/data.txt")); + for (File file : files) { + if (file.isFile()) { + writer.write(file.getName().length() + "\n"); + } + } + writer.close(); + System.out.println("Данные успешно записаны в файл /var/result/data.txt. Программа 1 выполнилась."); + } catch (IOException e) { + System.out.println("Ошибка при записи в файл /var/result/data.txt: " + e.getMessage()); + } + } +} \ No newline at end of file diff --git a/mashkova_margarita_lab_2/worker-2/Dockerfile b/mashkova_margarita_lab_2/worker-2/Dockerfile new file mode 100644 index 0000000..188a9b8 --- /dev/null +++ b/mashkova_margarita_lab_2/worker-2/Dockerfile @@ -0,0 +1,13 @@ +# Использование образа java +FROM openjdk:17 +# Создание директорий +RUN mkdir /var/data +RUN mkdir /var/result +# Рабочая директория +WORKDIR /app +# Копирование исходных файлов +COPY src/Main.java /app/Main.java +# Компиляция +RUN javac Main.java +# Запуск +CMD ["java", "Main"] \ No newline at end of file diff --git a/mashkova_margarita_lab_2/worker-2/src/Main.java b/mashkova_margarita_lab_2/worker-2/src/Main.java new file mode 100644 index 0000000..5b23447 --- /dev/null +++ b/mashkova_margarita_lab_2/worker-2/src/Main.java @@ -0,0 +1,48 @@ +import java.io.*; + +// Ищет наименьшее число из файла `/var/result/data.txt` и сохраняет его 3 степень в `/var/result/result.txt` +public class Main { + public static void main(String[] args) { + int min = Integer.MAX_VALUE; + int len = 0; + + // Чтение файла /var/result/data.txt и поиск наименьшего числа + try { + System.out.println("Содержимое файла /var/result/data.txt:"); + BufferedReader reader = new BufferedReader(new FileReader("/var/result/data.txt")); + String line = reader.readLine(); + while (line != null) { + try { + len = Integer.parseInt(line); + System.out.println(len); + if (len < min){ + min = len; + } + } catch (NumberFormatException e) { + len = -1; + } + line = reader.readLine(); + } + reader.close(); + } catch (IOException e) { + System.out.println("Ошибка при чтении файла /var/result/data.txt: " + e.getMessage()); + } + + // Возведение наименьше числа в 3 степень + int min3 = (int)Math.pow(min, 3); + + // Вывод результата на экран + String res = String.format("Наименьшее значение в файле /var/result/data.txt, возведенное в 3 степень: %d", min3); + System.out.println(res); + + // Запись результата в /var/result/result.txt + try { + BufferedWriter writer = new BufferedWriter(new FileWriter("/var/result/result.txt")); + writer.write(Integer.toString(min3)); + writer.close(); + System.out.println("Данные успешно записаны в файл /var/result/result.txt. Программа 2 выполнилась."); + } catch (IOException e) { + System.out.println("Ошибка при записи в файл /var/result/result.txt: " + e.getMessage()); + } + } +} \ No newline at end of file