forked from Alexey/DAS_2024_1
Merge pull request 'vaksman_valeria_lab_2' (#39) from vaksman_valeria_lab_2 into main
Reviewed-on: Alexey/DAS_2024_1#39
This commit is contained in:
commit
ac3dc2e566
4
vaksman_valeria_lab_2/.env
Normal file
4
vaksman_valeria_lab_2/.env
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
DB_HOST = db
|
||||||
|
DB_USER = wordpress
|
||||||
|
DB_PASSWORD = wordpress
|
||||||
|
DB_NAME = wordpress
|
3
vaksman_valeria_lab_2/.gitignote
Normal file
3
vaksman_valeria_lab_2/.gitignote
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
result/
|
||||||
|
data/
|
||||||
|
.vscode/
|
43
vaksman_valeria_lab_2/README.md
Normal file
43
vaksman_valeria_lab_2/README.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# Лабораторная работа №2 - Разработка простейшего распределённого приложения
|
||||||
|
|
||||||
|
## Задание
|
||||||
|
|
||||||
|
* Разработать два приложения такие, что результат первого является исходными данными для второго.
|
||||||
|
* Собрать файл ```docker-compose.yml``` для запуска приложений.
|
||||||
|
|
||||||
|
Изучить файлы сборки образов ```docker``` и разработать их для созданных приложений и правильно закоммитить решение
|
||||||
|
|
||||||
|
### Варианты задания:
|
||||||
|
1. ```app_one``` - Ищет в каталоге ```/var/data``` файл с наибольшим количеством строк и перекладывает его в ```/var/result/data.txt.```
|
||||||
|
|
||||||
|
2. ```app_two``` - Ищет наименьшее число из файла ```/var/data/data.txt``` и сохраняет его третью степень в ```/var/result/result.txt.```
|
||||||
|
|
||||||
|
|
||||||
|
## Запуск
|
||||||
|
|
||||||
|
## Запуск работы
|
||||||
|
|
||||||
|
1. Убедиться, что установлены необходимые технологии:
|
||||||
|
- Docker: Платформа для контейнеризации приложений.
|
||||||
|
- Docker Compose: Инструмент для запуска многоконтейнерных приложений на основе `docker-compose.yaml`. Обычно поставляется вместе с Docker. Чтобы проверить, установлена ли утилита, нужно запустить команду:
|
||||||
|
```bash
|
||||||
|
docker-compose --version
|
||||||
|
```
|
||||||
|
|
||||||
|
2. В директории, где находится файл `docker-compose.yaml`, выполнить следующую команду для запуска всех сервисов:
|
||||||
|
```bash
|
||||||
|
docker-compose up --build
|
||||||
|
```
|
||||||
|
Эта команда сначала выполнит сборку, а затем запустит контейнеры.
|
||||||
|
|
||||||
|
3. После успешного запуска можно перейти в каталог проекта и увидеть папку data со сгенерированными файлами и папку result, в которой два текстовых файла:
|
||||||
|
- data.txt - файл, полученный после выполнения первой программы.
|
||||||
|
- result.txt -файл, полученный после выполнения второй программы.
|
||||||
|
|
||||||
|
## Описание работы:
|
||||||
|
|
||||||
|
Для разработки приложений был выбран язык программирования - ```python```
|
||||||
|
Построчное описание docker-compose.yaml и других файлов выполнено в самих файлах.
|
||||||
|
|
||||||
|
# Вк видео
|
||||||
|
https://vk.com/video256017065_456239871?list=ln-0dkZ8lxZS2VXpSR3TP
|
11
vaksman_valeria_lab_2/app_one/Dockerfile
Normal file
11
vaksman_valeria_lab_2/app_one/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Официальный образ Python 3.10
|
||||||
|
FROM python:3.10-slim
|
||||||
|
|
||||||
|
# Установка рабочей директории
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Копирование всех (в данном случае одного) файлов в контейнер
|
||||||
|
COPY First.py /app/
|
||||||
|
|
||||||
|
# Запуск программы
|
||||||
|
CMD ["python", "First.py"]
|
31
vaksman_valeria_lab_2/app_one/First.py
Normal file
31
vaksman_valeria_lab_2/app_one/First.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
# Пути к директориии для поиска и файла для сохранения
|
||||||
|
source_dir = '/var/data'
|
||||||
|
destination_file = '/var/result/data.txt'
|
||||||
|
|
||||||
|
# Простая функция дл подсчёта строк в файле. Настроили для работы с кириллицей (utf-8)
|
||||||
|
def count_lines(filepath):
|
||||||
|
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
|
||||||
|
return sum(1 for _ in f)
|
||||||
|
|
||||||
|
# Старт поиска файла по условию (самое большое кол-во строк)
|
||||||
|
max_lines = 0
|
||||||
|
max_file = None
|
||||||
|
|
||||||
|
for filename in os.listdir(source_dir):
|
||||||
|
file_path = os.path.join(source_dir, filename)
|
||||||
|
|
||||||
|
if os.path.isfile(file_path):
|
||||||
|
lines = count_lines(file_path)
|
||||||
|
if lines > max_lines:
|
||||||
|
max_lines = lines
|
||||||
|
max_file = file_path
|
||||||
|
|
||||||
|
# Копирование файла с самым большим кол-вом строчек в нужную директорию
|
||||||
|
if max_file:
|
||||||
|
shutil.copy(max_file, destination_file)
|
||||||
|
print(f"{max_file} с кол-вом строк {max_lines} был перемещен в {destination_file}")
|
||||||
|
else:
|
||||||
|
print("Указанная директория пустая :(")
|
11
vaksman_valeria_lab_2/app_two/Dockerfile
Normal file
11
vaksman_valeria_lab_2/app_two/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Официальный образ Python 3.10
|
||||||
|
FROM python:3.10-slim
|
||||||
|
|
||||||
|
# Установка рабочей директории
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Копирование всех (в данном случае одного) файлов в контейнер
|
||||||
|
COPY Second.py /app/
|
||||||
|
|
||||||
|
# Запуск программы
|
||||||
|
CMD ["python", "Second.py"]
|
18
vaksman_valeria_lab_2/app_two/Second.py
Normal file
18
vaksman_valeria_lab_2/app_two/Second.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Пути к директориии c файлами для поиска и сохранения
|
||||||
|
input_file = '/var/result/data.txt'
|
||||||
|
output_file = '/var/result/result.txt'
|
||||||
|
|
||||||
|
# Поиск наименьшего числа в файле
|
||||||
|
with open(input_file, 'r') as f:
|
||||||
|
numbers = [float(line.strip()) for line in f if line.strip()]
|
||||||
|
|
||||||
|
# Искомое min число
|
||||||
|
min_number = min(numbers)
|
||||||
|
|
||||||
|
cubed_number = min_number ** 3
|
||||||
|
|
||||||
|
# Сохранение
|
||||||
|
with open(output_file, 'w') as f:
|
||||||
|
f.write(str(cubed_number))
|
||||||
|
|
||||||
|
print(f"Наименьшее число: {min_number}\nЕго третья степень: {cubed_number}\nРезультат сохранён в {output_file}")
|
8
vaksman_valeria_lab_2/data/random_file_1.txt
Normal file
8
vaksman_valeria_lab_2/data/random_file_1.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
278
|
||||||
|
940
|
||||||
|
336
|
||||||
|
99
|
||||||
|
360
|
||||||
|
451
|
||||||
|
836
|
||||||
|
359
|
72
vaksman_valeria_lab_2/data/random_file_10.txt
Normal file
72
vaksman_valeria_lab_2/data/random_file_10.txt
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
240
|
||||||
|
468
|
||||||
|
64
|
||||||
|
586
|
||||||
|
648
|
||||||
|
230
|
||||||
|
203
|
||||||
|
295
|
||||||
|
979
|
||||||
|
621
|
||||||
|
528
|
||||||
|
718
|
||||||
|
107
|
||||||
|
822
|
||||||
|
323
|
||||||
|
691
|
||||||
|
446
|
||||||
|
667
|
||||||
|
994
|
||||||
|
645
|
||||||
|
985
|
||||||
|
604
|
||||||
|
664
|
||||||
|
465
|
||||||
|
541
|
||||||
|
747
|
||||||
|
163
|
||||||
|
329
|
||||||
|
993
|
||||||
|
374
|
||||||
|
968
|
||||||
|
512
|
||||||
|
739
|
||||||
|
774
|
||||||
|
928
|
||||||
|
433
|
||||||
|
560
|
||||||
|
610
|
||||||
|
336
|
||||||
|
194
|
||||||
|
572
|
||||||
|
735
|
||||||
|
775
|
||||||
|
617
|
||||||
|
712
|
||||||
|
412
|
||||||
|
324
|
||||||
|
40
|
||||||
|
837
|
||||||
|
15
|
||||||
|
100
|
||||||
|
28
|
||||||
|
682
|
||||||
|
498
|
||||||
|
628
|
||||||
|
832
|
||||||
|
889
|
||||||
|
964
|
||||||
|
941
|
||||||
|
167
|
||||||
|
777
|
||||||
|
400
|
||||||
|
413
|
||||||
|
361
|
||||||
|
326
|
||||||
|
796
|
||||||
|
68
|
||||||
|
154
|
||||||
|
355
|
||||||
|
866
|
||||||
|
161
|
||||||
|
76
|
75
vaksman_valeria_lab_2/data/random_file_2.txt
Normal file
75
vaksman_valeria_lab_2/data/random_file_2.txt
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
116
|
||||||
|
224
|
||||||
|
318
|
||||||
|
215
|
||||||
|
419
|
||||||
|
465
|
||||||
|
431
|
||||||
|
319
|
||||||
|
838
|
||||||
|
430
|
||||||
|
366
|
||||||
|
906
|
||||||
|
166
|
||||||
|
69
|
||||||
|
576
|
||||||
|
173
|
||||||
|
879
|
||||||
|
177
|
||||||
|
43
|
||||||
|
586
|
||||||
|
34
|
||||||
|
990
|
||||||
|
794
|
||||||
|
474
|
||||||
|
961
|
||||||
|
980
|
||||||
|
771
|
||||||
|
170
|
||||||
|
262
|
||||||
|
294
|
||||||
|
294
|
||||||
|
718
|
||||||
|
802
|
||||||
|
745
|
||||||
|
464
|
||||||
|
411
|
||||||
|
626
|
||||||
|
702
|
||||||
|
809
|
||||||
|
917
|
||||||
|
580
|
||||||
|
368
|
||||||
|
101
|
||||||
|
674
|
||||||
|
564
|
||||||
|
335
|
||||||
|
581
|
||||||
|
437
|
||||||
|
907
|
||||||
|
546
|
||||||
|
545
|
||||||
|
545
|
||||||
|
237
|
||||||
|
205
|
||||||
|
263
|
||||||
|
503
|
||||||
|
759
|
||||||
|
199
|
||||||
|
915
|
||||||
|
835
|
||||||
|
765
|
||||||
|
784
|
||||||
|
562
|
||||||
|
834
|
||||||
|
921
|
||||||
|
784
|
||||||
|
242
|
||||||
|
547
|
||||||
|
988
|
||||||
|
477
|
||||||
|
823
|
||||||
|
640
|
||||||
|
440
|
||||||
|
475
|
||||||
|
151
|
97
vaksman_valeria_lab_2/data/random_file_3.txt
Normal file
97
vaksman_valeria_lab_2/data/random_file_3.txt
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
157
|
||||||
|
634
|
||||||
|
716
|
||||||
|
273
|
||||||
|
113
|
||||||
|
861
|
||||||
|
144
|
||||||
|
182
|
||||||
|
379
|
||||||
|
619
|
||||||
|
766
|
||||||
|
375
|
||||||
|
857
|
||||||
|
836
|
||||||
|
380
|
||||||
|
752
|
||||||
|
328
|
||||||
|
460
|
||||||
|
560
|
||||||
|
369
|
||||||
|
900
|
||||||
|
258
|
||||||
|
78
|
||||||
|
847
|
||||||
|
275
|
||||||
|
802
|
||||||
|
903
|
||||||
|
892
|
||||||
|
211
|
||||||
|
294
|
||||||
|
68
|
||||||
|
590
|
||||||
|
193
|
||||||
|
913
|
||||||
|
164
|
||||||
|
855
|
||||||
|
583
|
||||||
|
983
|
||||||
|
696
|
||||||
|
330
|
||||||
|
327
|
||||||
|
798
|
||||||
|
442
|
||||||
|
669
|
||||||
|
211
|
||||||
|
677
|
||||||
|
225
|
||||||
|
633
|
||||||
|
784
|
||||||
|
961
|
||||||
|
246
|
||||||
|
683
|
||||||
|
184
|
||||||
|
247
|
||||||
|
315
|
||||||
|
9
|
||||||
|
876
|
||||||
|
260
|
||||||
|
743
|
||||||
|
200
|
||||||
|
813
|
||||||
|
578
|
||||||
|
465
|
||||||
|
429
|
||||||
|
738
|
||||||
|
783
|
||||||
|
695
|
||||||
|
206
|
||||||
|
658
|
||||||
|
701
|
||||||
|
612
|
||||||
|
689
|
||||||
|
66
|
||||||
|
971
|
||||||
|
334
|
||||||
|
371
|
||||||
|
638
|
||||||
|
549
|
||||||
|
720
|
||||||
|
497
|
||||||
|
569
|
||||||
|
945
|
||||||
|
701
|
||||||
|
415
|
||||||
|
200
|
||||||
|
422
|
||||||
|
977
|
||||||
|
931
|
||||||
|
854
|
||||||
|
638
|
||||||
|
583
|
||||||
|
870
|
||||||
|
938
|
||||||
|
53
|
||||||
|
349
|
||||||
|
572
|
||||||
|
414
|
83
vaksman_valeria_lab_2/data/random_file_4.txt
Normal file
83
vaksman_valeria_lab_2/data/random_file_4.txt
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
830
|
||||||
|
7
|
||||||
|
232
|
||||||
|
405
|
||||||
|
514
|
||||||
|
173
|
||||||
|
739
|
||||||
|
974
|
||||||
|
156
|
||||||
|
469
|
||||||
|
232
|
||||||
|
226
|
||||||
|
988
|
||||||
|
957
|
||||||
|
272
|
||||||
|
491
|
||||||
|
721
|
||||||
|
703
|
||||||
|
751
|
||||||
|
797
|
||||||
|
379
|
||||||
|
866
|
||||||
|
119
|
||||||
|
697
|
||||||
|
846
|
||||||
|
634
|
||||||
|
840
|
||||||
|
483
|
||||||
|
660
|
||||||
|
258
|
||||||
|
48
|
||||||
|
399
|
||||||
|
807
|
||||||
|
344
|
||||||
|
370
|
||||||
|
373
|
||||||
|
304
|
||||||
|
520
|
||||||
|
464
|
||||||
|
80
|
||||||
|
258
|
||||||
|
57
|
||||||
|
172
|
||||||
|
343
|
||||||
|
693
|
||||||
|
342
|
||||||
|
893
|
||||||
|
702
|
||||||
|
794
|
||||||
|
313
|
||||||
|
767
|
||||||
|
466
|
||||||
|
966
|
||||||
|
433
|
||||||
|
842
|
||||||
|
845
|
||||||
|
836
|
||||||
|
676
|
||||||
|
560
|
||||||
|
398
|
||||||
|
442
|
||||||
|
531
|
||||||
|
548
|
||||||
|
896
|
||||||
|
488
|
||||||
|
573
|
||||||
|
662
|
||||||
|
427
|
||||||
|
840
|
||||||
|
962
|
||||||
|
460
|
||||||
|
108
|
||||||
|
146
|
||||||
|
862
|
||||||
|
651
|
||||||
|
559
|
||||||
|
755
|
||||||
|
536
|
||||||
|
14
|
||||||
|
702
|
||||||
|
709
|
||||||
|
379
|
||||||
|
231
|
95
vaksman_valeria_lab_2/data/random_file_5.txt
Normal file
95
vaksman_valeria_lab_2/data/random_file_5.txt
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
278
|
||||||
|
58
|
||||||
|
817
|
||||||
|
997
|
||||||
|
915
|
||||||
|
183
|
||||||
|
750
|
||||||
|
625
|
||||||
|
302
|
||||||
|
228
|
||||||
|
819
|
||||||
|
357
|
||||||
|
797
|
||||||
|
672
|
||||||
|
990
|
||||||
|
207
|
||||||
|
477
|
||||||
|
872
|
||||||
|
40
|
||||||
|
792
|
||||||
|
45
|
||||||
|
405
|
||||||
|
669
|
||||||
|
375
|
||||||
|
137
|
||||||
|
807
|
||||||
|
876
|
||||||
|
84
|
||||||
|
726
|
||||||
|
813
|
||||||
|
629
|
||||||
|
301
|
||||||
|
331
|
||||||
|
143
|
||||||
|
598
|
||||||
|
429
|
||||||
|
827
|
||||||
|
173
|
||||||
|
850
|
||||||
|
548
|
||||||
|
19
|
||||||
|
907
|
||||||
|
185
|
||||||
|
392
|
||||||
|
257
|
||||||
|
349
|
||||||
|
480
|
||||||
|
314
|
||||||
|
510
|
||||||
|
239
|
||||||
|
420
|
||||||
|
994
|
||||||
|
880
|
||||||
|
492
|
||||||
|
366
|
||||||
|
540
|
||||||
|
96
|
||||||
|
283
|
||||||
|
331
|
||||||
|
604
|
||||||
|
38
|
||||||
|
93
|
||||||
|
844
|
||||||
|
197
|
||||||
|
780
|
||||||
|
159
|
||||||
|
338
|
||||||
|
932
|
||||||
|
661
|
||||||
|
936
|
||||||
|
573
|
||||||
|
602
|
||||||
|
319
|
||||||
|
512
|
||||||
|
472
|
||||||
|
419
|
||||||
|
374
|
||||||
|
144
|
||||||
|
872
|
||||||
|
76
|
||||||
|
634
|
||||||
|
535
|
||||||
|
365
|
||||||
|
247
|
||||||
|
169
|
||||||
|
5
|
||||||
|
934
|
||||||
|
483
|
||||||
|
252
|
||||||
|
807
|
||||||
|
533
|
||||||
|
387
|
||||||
|
323
|
||||||
|
791
|
||||||
|
701
|
37
vaksman_valeria_lab_2/data/random_file_6.txt
Normal file
37
vaksman_valeria_lab_2/data/random_file_6.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
149
|
||||||
|
821
|
||||||
|
575
|
||||||
|
117
|
||||||
|
846
|
||||||
|
682
|
||||||
|
74
|
||||||
|
706
|
||||||
|
415
|
||||||
|
736
|
||||||
|
910
|
||||||
|
392
|
||||||
|
31
|
||||||
|
210
|
||||||
|
425
|
||||||
|
565
|
||||||
|
645
|
||||||
|
396
|
||||||
|
774
|
||||||
|
16
|
||||||
|
882
|
||||||
|
260
|
||||||
|
668
|
||||||
|
997
|
||||||
|
94
|
||||||
|
286
|
||||||
|
170
|
||||||
|
506
|
||||||
|
494
|
||||||
|
634
|
||||||
|
635
|
||||||
|
319
|
||||||
|
943
|
||||||
|
885
|
||||||
|
555
|
||||||
|
662
|
||||||
|
727
|
72
vaksman_valeria_lab_2/data/random_file_7.txt
Normal file
72
vaksman_valeria_lab_2/data/random_file_7.txt
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
91
|
||||||
|
433
|
||||||
|
212
|
||||||
|
692
|
||||||
|
903
|
||||||
|
322
|
||||||
|
360
|
||||||
|
926
|
||||||
|
952
|
||||||
|
428
|
||||||
|
142
|
||||||
|
775
|
||||||
|
939
|
||||||
|
979
|
||||||
|
241
|
||||||
|
298
|
||||||
|
697
|
||||||
|
951
|
||||||
|
688
|
||||||
|
613
|
||||||
|
801
|
||||||
|
653
|
||||||
|
543
|
||||||
|
815
|
||||||
|
356
|
||||||
|
170
|
||||||
|
25
|
||||||
|
620
|
||||||
|
57
|
||||||
|
102
|
||||||
|
483
|
||||||
|
317
|
||||||
|
982
|
||||||
|
531
|
||||||
|
15
|
||||||
|
286
|
||||||
|
948
|
||||||
|
494
|
||||||
|
102
|
||||||
|
537
|
||||||
|
871
|
||||||
|
741
|
||||||
|
412
|
||||||
|
135
|
||||||
|
543
|
||||||
|
228
|
||||||
|
158
|
||||||
|
9
|
||||||
|
852
|
||||||
|
432
|
||||||
|
598
|
||||||
|
997
|
||||||
|
367
|
||||||
|
139
|
||||||
|
783
|
||||||
|
475
|
||||||
|
73
|
||||||
|
761
|
||||||
|
466
|
||||||
|
520
|
||||||
|
605
|
||||||
|
444
|
||||||
|
353
|
||||||
|
473
|
||||||
|
8
|
||||||
|
925
|
||||||
|
977
|
||||||
|
634
|
||||||
|
769
|
||||||
|
905
|
||||||
|
115
|
||||||
|
213
|
65
vaksman_valeria_lab_2/data/random_file_8.txt
Normal file
65
vaksman_valeria_lab_2/data/random_file_8.txt
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
764
|
||||||
|
559
|
||||||
|
169
|
||||||
|
642
|
||||||
|
513
|
||||||
|
341
|
||||||
|
376
|
||||||
|
904
|
||||||
|
912
|
||||||
|
313
|
||||||
|
522
|
||||||
|
226
|
||||||
|
467
|
||||||
|
172
|
||||||
|
952
|
||||||
|
315
|
||||||
|
359
|
||||||
|
612
|
||||||
|
695
|
||||||
|
487
|
||||||
|
564
|
||||||
|
697
|
||||||
|
681
|
||||||
|
31
|
||||||
|
186
|
||||||
|
222
|
||||||
|
212
|
||||||
|
631
|
||||||
|
177
|
||||||
|
46
|
||||||
|
443
|
||||||
|
252
|
||||||
|
262
|
||||||
|
662
|
||||||
|
480
|
||||||
|
750
|
||||||
|
560
|
||||||
|
148
|
||||||
|
342
|
||||||
|
119
|
||||||
|
659
|
||||||
|
82
|
||||||
|
846
|
||||||
|
84
|
||||||
|
726
|
||||||
|
182
|
||||||
|
286
|
||||||
|
648
|
||||||
|
252
|
||||||
|
826
|
||||||
|
848
|
||||||
|
351
|
||||||
|
98
|
||||||
|
619
|
||||||
|
630
|
||||||
|
503
|
||||||
|
507
|
||||||
|
527
|
||||||
|
662
|
||||||
|
961
|
||||||
|
403
|
||||||
|
752
|
||||||
|
756
|
||||||
|
938
|
||||||
|
16
|
65
vaksman_valeria_lab_2/data/random_file_9.txt
Normal file
65
vaksman_valeria_lab_2/data/random_file_9.txt
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
498
|
||||||
|
783
|
||||||
|
418
|
||||||
|
943
|
||||||
|
427
|
||||||
|
460
|
||||||
|
545
|
||||||
|
38
|
||||||
|
892
|
||||||
|
345
|
||||||
|
552
|
||||||
|
605
|
||||||
|
591
|
||||||
|
958
|
||||||
|
903
|
||||||
|
927
|
||||||
|
38
|
||||||
|
950
|
||||||
|
774
|
||||||
|
596
|
||||||
|
314
|
||||||
|
177
|
||||||
|
499
|
||||||
|
706
|
||||||
|
440
|
||||||
|
943
|
||||||
|
451
|
||||||
|
13
|
||||||
|
306
|
||||||
|
126
|
||||||
|
831
|
||||||
|
311
|
||||||
|
834
|
||||||
|
304
|
||||||
|
186
|
||||||
|
265
|
||||||
|
456
|
||||||
|
21
|
||||||
|
320
|
||||||
|
746
|
||||||
|
570
|
||||||
|
708
|
||||||
|
172
|
||||||
|
702
|
||||||
|
320
|
||||||
|
532
|
||||||
|
491
|
||||||
|
334
|
||||||
|
757
|
||||||
|
505
|
||||||
|
83
|
||||||
|
167
|
||||||
|
312
|
||||||
|
511
|
||||||
|
723
|
||||||
|
92
|
||||||
|
885
|
||||||
|
904
|
||||||
|
608
|
||||||
|
542
|
||||||
|
579
|
||||||
|
679
|
||||||
|
615
|
||||||
|
993
|
||||||
|
60
|
27
vaksman_valeria_lab_2/docker-compose.yaml
Normal file
27
vaksman_valeria_lab_2/docker-compose.yaml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
services:
|
||||||
|
# Сервис файлового генератора
|
||||||
|
generator:
|
||||||
|
build:
|
||||||
|
context: ./file_generator # Путь к директории с Dockerfile
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/data # Монтирование локальной папки data в /var/data, то есть в контейнере
|
||||||
|
|
||||||
|
# Сервис первой программы
|
||||||
|
app_one:
|
||||||
|
depends_on: # повесили ожидание запуска генератора файлов
|
||||||
|
- generator
|
||||||
|
build:
|
||||||
|
context: ./app_one/ # Путь к директории с Dockerfile
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/data
|
||||||
|
- ./result:/var/result
|
||||||
|
|
||||||
|
# Сервис второй программы
|
||||||
|
app_two:
|
||||||
|
depends_on: # повесили ожидание запуска первой программы
|
||||||
|
- app_one
|
||||||
|
build:
|
||||||
|
context: ./app_two/ # Путь к директории с Dockerfile
|
||||||
|
volumes:
|
||||||
|
- ./data:/var/data
|
||||||
|
- ./result:/var/result
|
11
vaksman_valeria_lab_2/file_generator/Dockerfile
Normal file
11
vaksman_valeria_lab_2/file_generator/Dockerfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# Официальный образ Python 3.10
|
||||||
|
FROM python:3.10-slim
|
||||||
|
|
||||||
|
# Установка рабочей директории
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Копирование всех (в данном случае одного) файлов в контейнер
|
||||||
|
COPY Generator.py /app/
|
||||||
|
|
||||||
|
# Запуск программы
|
||||||
|
CMD ["python", "Generator.py"]
|
31
vaksman_valeria_lab_2/file_generator/Generator.py
Normal file
31
vaksman_valeria_lab_2/file_generator/Generator.py
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import os
|
||||||
|
import random
|
||||||
|
|
||||||
|
# Директория для генерации файлов
|
||||||
|
output_dir = '/var/data'
|
||||||
|
|
||||||
|
# Проверка на наличие таковой
|
||||||
|
os.makedirs(output_dir, exist_ok=True)
|
||||||
|
|
||||||
|
# Генерируем случайное кол-во файлов (1-15)
|
||||||
|
num_files = random.randint(1, 15)
|
||||||
|
|
||||||
|
# Случайное по всем статьям заполнение файла
|
||||||
|
def generate_random_file(filename):
|
||||||
|
|
||||||
|
# Рандомное кол-во строк в файле
|
||||||
|
num_lines = random.randint(1, 100)
|
||||||
|
|
||||||
|
with open(filename, 'w') as f:
|
||||||
|
for _ in range(num_lines):
|
||||||
|
# Для полного швепса выбираем случайное число
|
||||||
|
random_number = random.randint(0, 1000)
|
||||||
|
f.write(f"{random_number}\n")
|
||||||
|
|
||||||
|
# Запускаем генерацию нашего набора файлов
|
||||||
|
for i in range(num_files):
|
||||||
|
filename = os.path.join(output_dir, f'random_file_{i + 1}.txt')
|
||||||
|
generate_random_file(filename)
|
||||||
|
print(f"Генерация файла {filename}.")
|
||||||
|
|
||||||
|
print(f"Общее кол-во сгенерированных файлов: {num_files}")
|
97
vaksman_valeria_lab_2/result/data.txt
Normal file
97
vaksman_valeria_lab_2/result/data.txt
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
157
|
||||||
|
634
|
||||||
|
716
|
||||||
|
273
|
||||||
|
113
|
||||||
|
861
|
||||||
|
144
|
||||||
|
182
|
||||||
|
379
|
||||||
|
619
|
||||||
|
766
|
||||||
|
375
|
||||||
|
857
|
||||||
|
836
|
||||||
|
380
|
||||||
|
752
|
||||||
|
328
|
||||||
|
460
|
||||||
|
560
|
||||||
|
369
|
||||||
|
900
|
||||||
|
258
|
||||||
|
78
|
||||||
|
847
|
||||||
|
275
|
||||||
|
802
|
||||||
|
903
|
||||||
|
892
|
||||||
|
211
|
||||||
|
294
|
||||||
|
68
|
||||||
|
590
|
||||||
|
193
|
||||||
|
913
|
||||||
|
164
|
||||||
|
855
|
||||||
|
583
|
||||||
|
983
|
||||||
|
696
|
||||||
|
330
|
||||||
|
327
|
||||||
|
798
|
||||||
|
442
|
||||||
|
669
|
||||||
|
211
|
||||||
|
677
|
||||||
|
225
|
||||||
|
633
|
||||||
|
784
|
||||||
|
961
|
||||||
|
246
|
||||||
|
683
|
||||||
|
184
|
||||||
|
247
|
||||||
|
315
|
||||||
|
9
|
||||||
|
876
|
||||||
|
260
|
||||||
|
743
|
||||||
|
200
|
||||||
|
813
|
||||||
|
578
|
||||||
|
465
|
||||||
|
429
|
||||||
|
738
|
||||||
|
783
|
||||||
|
695
|
||||||
|
206
|
||||||
|
658
|
||||||
|
701
|
||||||
|
612
|
||||||
|
689
|
||||||
|
66
|
||||||
|
971
|
||||||
|
334
|
||||||
|
371
|
||||||
|
638
|
||||||
|
549
|
||||||
|
720
|
||||||
|
497
|
||||||
|
569
|
||||||
|
945
|
||||||
|
701
|
||||||
|
415
|
||||||
|
200
|
||||||
|
422
|
||||||
|
977
|
||||||
|
931
|
||||||
|
854
|
||||||
|
638
|
||||||
|
583
|
||||||
|
870
|
||||||
|
938
|
||||||
|
53
|
||||||
|
349
|
||||||
|
572
|
||||||
|
414
|
1
vaksman_valeria_lab_2/result/result.txt
Normal file
1
vaksman_valeria_lab_2/result/result.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
729.0
|
Loading…
Reference in New Issue
Block a user