DAS_2023_1/basharin_sevastyan_lab_2
2023-11-21 21:21:04 +04:00
..
app1 is ready 2023-11-21 21:21:04 +04:00
app2 is ready 2023-11-21 21:21:04 +04:00
docker-compose.yaml is ready 2023-11-21 21:21:04 +04:00
README.md is ready 2023-11-21 21:21:04 +04:00

Лабораторная работа 1. Вариант 5.

Вариант первой программы:

Ищет в каталоге /var/data файл с самым коротким названием и перекладывает его в /var/result/data.txt.

Вариант второй программы:

Сохраняет произведение первого и последнего числа из файла /var/data/data.txt в /var/result/result.txt.

Как запустить:

В директории с файлом docker-compose в консоли/терминале ввести команду docker-compose up

Файл сборки docker-compose.yaml

version: "3"
services:
  worker-1:
    build:
      context: /app1
      dockerfile: Dockerfile

  worker-2:
    build:
      context: /app2
      dockerfile: Dockerfile

Dockerfile каждой программы

FROM python:3.11
COPY . .
COPY var/data /var/data
COPY var/result /var/result
CMD ["python", "main.py"]

Код первой программы

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()

Код второй программы

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