tepechin_kirill_lab_2 #40
100
tepechin_kirill_lab_2/README.md
Normal file
100
tepechin_kirill_lab_2/README.md
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
## Лабораторная работа №1, ПИбд-42 Тепечин Кирилл, Вариант 26 (2, 2)
|
||||||
|
|
||||||
|
### Задание
|
||||||
|
#### Задание для первого приложения
|
||||||
|
Формирует файл /var/result/data.txt из первых строк всех файлов каталога /var/data
|
||||||
|
#### Задание для второго приложения
|
||||||
|
Ищет наименьшее число из файла /var/data/data.txt и сохраняет его третью степень в /var/result/result.txt.
|
||||||
|
|
||||||
|
### Содержимое файлов
|
||||||
|
#### data/data.txt
|
||||||
|
````
|
||||||
|
13 50 5 3 33
|
||||||
|
2 3 10 12
|
||||||
|
````
|
||||||
|
#### data/data2.txt
|
||||||
|
````
|
||||||
|
2 3 10 12
|
||||||
|
13 50 5 3 33
|
||||||
|
````
|
||||||
|
### Dockerfile worker-1
|
||||||
|
````dockerfile
|
||||||
|
# Использование образа java
|
||||||
|
FROM openjdk:17
|
||||||
|
|
||||||
|
# Создание директорий
|
||||||
|
RUN mkdir /var/data
|
||||||
|
RUN mkdir /var/result
|
||||||
|
|
||||||
|
# Рабочая директория
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Копирование исходных файлов
|
||||||
|
COPY src /app/src
|
||||||
|
|
||||||
|
# Компиляция
|
||||||
|
RUN javac /app/src/First.java
|
||||||
|
|
||||||
|
# Запуск
|
||||||
|
CMD ["java", "-jar", "/app/src", "First"]
|
||||||
|
````
|
||||||
|
|
||||||
|
### Dockerfile worker-2
|
||||||
|
````dockerfile
|
||||||
|
# Использование образа java
|
||||||
|
FROM openjdk:17
|
||||||
|
|
||||||
|
# Создание директорий
|
||||||
|
RUN mkdir /var/data
|
||||||
|
RUN mkdir /var/result
|
||||||
|
|
||||||
|
# Рабочая директория
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Копирование исходных файлов
|
||||||
|
COPY src /app/src
|
||||||
|
|
||||||
|
# Компиляция
|
||||||
|
RUN javac /app/src/Second.java
|
||||||
|
|
||||||
|
# Запуск
|
||||||
|
CMD ["java", "-jar", "/app/src", "Second"]
|
||||||
|
````
|
||||||
|
|
||||||
|
### docker-compose файл
|
||||||
|
````yaml
|
||||||
|
services:
|
||||||
|
worker-1:
|
||||||
|
build:
|
||||||
|
context: /worker-1
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
volumes:
|
||||||
|
- C:\pet\DAS_2023_1\tepechin_kirill_lab_2\data:/var/data # Монтирование
|
||||||
|
- C:\pet\DAS_2023_1\tepechin_kirill_lab_2\result:/var/result
|
||||||
|
worker-2:
|
||||||
|
build:
|
||||||
|
context: /worker-2
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
volumes:
|
||||||
|
- C:\pet\DAS_2023_1\tepechin_kirill_lab_2\data:/var/data
|
||||||
|
- C:\pet\DAS_2023_1\tepechin_kirill_lab_2\result:/var/result
|
||||||
|
depends_on: #Зависимость сервисов
|
||||||
|
- worker-1
|
||||||
|
````
|
||||||
|
### Результаты
|
||||||
|
#### Результат выполнения worker-1
|
||||||
|
````
|
||||||
|
13 50 5 3 33
|
||||||
|
2 3 10 12
|
||||||
|
````
|
||||||
|
Результат взят из файлов data.txt и data2.txt
|
||||||
|
#### Результат выполнения worker-2
|
||||||
|
````
|
||||||
|
8
|
||||||
|
````
|
||||||
|
2^3=8
|
||||||
|
### Ссылка на видео
|
||||||
|
https://vk.com/video170089763_456239479?list=ln-gcpaumCqgqZ6urwCaD
|
||||||
|
|
||||||
|
|
||||||
|
|
2
tepechin_kirill_lab_2/data/data.txt
Normal file
2
tepechin_kirill_lab_2/data/data.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
13 50 5 3 33
|
||||||
|
2 3 10 12
|
2
tepechin_kirill_lab_2/data/data2.txt
Normal file
2
tepechin_kirill_lab_2/data/data2.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
2 3 10 12
|
||||||
|
13 50 5 3 33
|
19
tepechin_kirill_lab_2/docker-compose.yml
Normal file
19
tepechin_kirill_lab_2/docker-compose.yml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
worker-1:
|
||||||
|
build:
|
||||||
|
context: /worker-1
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
volumes:
|
||||||
|
- C:\pet\DAS_2023_1\tepechin_kirill_lab_2\data:/var/data # Монтирование
|
||||||
|
- C:\pet\DAS_2023_1\tepechin_kirill_lab_2\result:/var/result
|
||||||
|
worker-2:
|
||||||
|
build:
|
||||||
|
context: /worker-2
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
volumes:
|
||||||
|
- C:\pet\DAS_2023_1\tepechin_kirill_lab_2\data:/var/data
|
||||||
|
- C:\pet\DAS_2023_1\tepechin_kirill_lab_2\result:/var/result
|
||||||
|
depends_on: #Зависимость сервисов
|
||||||
|
- worker-1
|
2
tepechin_kirill_lab_2/result/data.txt
Normal file
2
tepechin_kirill_lab_2/result/data.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
13 50 5 3 33
|
||||||
|
2 3 10 12
|
1
tepechin_kirill_lab_2/result/result.txt
Normal file
1
tepechin_kirill_lab_2/result/result.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
8
|
13
tepechin_kirill_lab_2/worker-1/Dockerfile
Normal file
13
tepechin_kirill_lab_2/worker-1/Dockerfile
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Использование образа java
|
||||||
|
FROM openjdk:17
|
||||||
|
# Создание директорий
|
||||||
|
RUN mkdir /var/data
|
||||||
|
RUN mkdir /var/result
|
||||||
|
# Рабочая директория
|
||||||
|
WORKDIR /app
|
||||||
|
# Копирование исходных файлов
|
||||||
|
COPY src /app/src
|
||||||
|
# Компиляция
|
||||||
|
RUN javac /app/src/First.java
|
||||||
|
# Запуск
|
||||||
|
CMD ["java", "-jar", "/app/src", "First"]
|
35
tepechin_kirill_lab_2/worker-1/src/First.java
Normal file
35
tepechin_kirill_lab_2/worker-1/src/First.java
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
public class First {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String dataDirectoryPath = "/var/data";
|
||||||
|
|
||||||
|
String resultFilePath = "/var/result/data.txt";
|
||||||
|
|
||||||
|
try {
|
||||||
|
BufferedWriter writer = new BufferedWriter(new FileWriter(resultFilePath));
|
||||||
|
|
||||||
|
File dataDirectory = new File(dataDirectoryPath);
|
||||||
|
File[] files = dataDirectory.listFiles();
|
||||||
|
|
||||||
|
if (files != null) {
|
||||||
|
for (File file : files) {
|
||||||
|
BufferedReader reader = new BufferedReader(new FileReader(file));
|
||||||
|
String line = reader.readLine();
|
||||||
|
|
||||||
|
if (line != null) {
|
||||||
|
writer.write(line);
|
||||||
|
writer.newLine();
|
||||||
|
}
|
||||||
|
|
||||||
|
reader.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
writer.close();
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
13
tepechin_kirill_lab_2/worker-2/Dockerfile
Normal file
13
tepechin_kirill_lab_2/worker-2/Dockerfile
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Использование образа java
|
||||||
|
FROM openjdk:17
|
||||||
|
# Создание директорий
|
||||||
|
RUN mkdir /var/data
|
||||||
|
RUN mkdir /var/result
|
||||||
|
# Рабочая директория
|
||||||
|
WORKDIR /app
|
||||||
|
# Копирование исходных файлов
|
||||||
|
COPY src /app/src
|
||||||
|
# Компиляция
|
||||||
|
RUN javac /app/src/Second.java
|
||||||
|
# Запуск
|
||||||
|
CMD ["java", "-jar", "/app/src", "Second"]
|
39
tepechin_kirill_lab_2/worker-2/src/Second.java
Normal file
39
tepechin_kirill_lab_2/worker-2/src/Second.java
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import java.io.*;
|
||||||
|
|
||||||
|
public class Second {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String dataFilePath = "/var/data/data.txt";
|
||||||
|
String resultFilePath = "/var/result/result.txt";
|
||||||
|
|
||||||
|
try {
|
||||||
|
BufferedReader reader = new BufferedReader(new FileReader(dataFilePath));
|
||||||
|
String line;
|
||||||
|
int minNumber = Integer.MAX_VALUE;
|
||||||
|
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
String[] strNums = line.split(" ");
|
||||||
|
for (var strNum: strNums) {
|
||||||
|
int number = Integer.parseInt(strNum);
|
||||||
|
|
||||||
|
if (number < minNumber) {
|
||||||
|
minNumber = number;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
reader.close();
|
||||||
|
|
||||||
|
int result = (int) Math.pow(minNumber, 3);
|
||||||
|
|
||||||
|
BufferedWriter writer = new BufferedWriter(new FileWriter(resultFilePath));
|
||||||
|
writer.write(String.valueOf(result));
|
||||||
|
writer.newLine();
|
||||||
|
writer.close();
|
||||||
|
|
||||||
|
System.out.println(result);
|
||||||
|
} catch (IOException | NumberFormatException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user