70 lines
2.1 KiB
Markdown
70 lines
2.1 KiB
Markdown
## Лабораторная работа 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 |