This commit is contained in:
acidmikk 2023-11-21 21:21:04 +04:00
parent d45fcb79c1
commit 89c01268ca
8 changed files with 100 additions and 13 deletions

View File

@ -0,0 +1,70 @@
## Лабораторная работа 1. Вариант 5.
#### Вариант первой программы:
Ищет в каталоге `/var/data` файл с самым коротким названием и перекладывает его в `/var/result/data.txt`.
#### Вариант второй программы:
Сохраняет произведение первого и последнего числа из файла `/var/data/data.txt` в `/var/result/result.txt`.
### Как запустить:
В директории с файлом `docker-compose` в консоли/терминале ввести команду `docker-compose up`
#### Файл сборки docker-compose.yaml
```dockerfile
version: "3"
services:
worker-1:
build:
context: /app1
dockerfile: Dockerfile
worker-2:
build:
context: /app2
dockerfile: Dockerfile
```
#### Dockerfile каждой программы
```dockerfile
FROM python:3.11
COPY . .
COPY var/data /var/data
COPY var/result /var/result
CMD ["python", "main.py"]
```
#### Код первой программы
```python
import os
def main():
data_dir = 'var/data'
result_file = '/var/result/data.txt'
min_name = min(os.listdir(data_dir)) # Ищем и записываем самое короткое название (включая расширение)
with open(result_file, 'w') as result:
result.write(min_name)
print(f'В файл {result_file} было записано {min_name}')
if __name__ == "__main__":
main()
```
#### Код второй программы
```python
def main():
data_path = 'var/data/data.txt'
result_path = 'var/result/result.txt'
data = []
with open(data_path, "r") as data_file:
data = list(map(lambda x: int(x), data_file.read().split()))
with open(result_path, 'w') as result:
result.write(f'{data[0] * data[-1]}')
print(f'В файл {result_path} было записано {data[0] * data[-1]}')
if __name__ == "__main__":
main()
```
### Видео
https://youtu.be/D7HKUqotLGA

View File

@ -2,4 +2,4 @@ FROM python:3.11
COPY . . COPY . .
COPY var/data /var/data COPY var/data /var/data
COPY var/result /var/result COPY var/result /var/result
CMD ["python", "app.py"] CMD ["python", "main.py"]

View File

@ -1,5 +1,13 @@
import os
def main(): def main():
pass data_dir = 'var/data'
result_file = '/var/result/data.txt'
min_name = min(os.listdir(data_dir)) # Ищем и записываем самое короткое название (включая расширение)
with open(result_file, 'w') as result:
result.write(min_name)
print(f'В файл {result_file} было записано {min_name}')
if __name__ == "__main__": if __name__ == "__main__":

View File

@ -2,4 +2,4 @@ FROM python:3.11
COPY . . COPY . .
COPY var/data /var/data COPY var/data /var/data
COPY var/result /var/result COPY var/result /var/result
CMD ["python", "app.py"] CMD ["python", "main.py"]

View File

@ -1,5 +1,12 @@
def main(): def main():
pass data_path = 'var/data/data.txt'
result_path = 'var/result/result.txt'
data = []
with open(data_path, "r") as data_file:
data = list(map(lambda x: int(x), data_file.read().split()))
with open(result_path, 'w') as result:
result.write(f'{data[0] * data[-1]}')
print(f'В файл {result_path} было записано {data[0] * data[-1]}')
if __name__ == "__main__": if __name__ == "__main__":

View File

@ -0,0 +1,10 @@
30
36
20
37
39
68
22
16
5
21

View File

@ -4,16 +4,8 @@ services:
build: build:
context: /app1 context: /app1
dockerfile: Dockerfile dockerfile: Dockerfile
volumes:
- ./data:/var/data
- ./result:/var/result
worker-2: worker-2:
depends_on:
- worker-1
build: build:
context: /app2 context: /app2
dockerfile: Dockerfile dockerfile: Dockerfile
volumes:
- ./result:/var/data
- ./result:/var/result