# Калышев Ян ПИбд-42

## Описание

Этот проект предоставляет 2 контейнера с простыми python-скриптами такими, что результат первого является исходными данными для второго.

## 1. Варианты

Для первой программы был взят вариант:
**0**. Ищет в каталоге /var/data самый большой по объёму файл и перекладывает его в /var/result/data.txt.

Для второй программы был взят вариант:
**2**. Ищет наименьшее число из файла /var/data/data.txt и сохраняет его третью степень в /var/result/result.txt.

## 2. Структура Dockerfile

Оба Dockerfile почти одинаковые:

```Dockerfile
#Берем базовый образ python
FROM python:3.12

#Устанавливаем рабочую директорию
WORKDIR /app

#Копирум код в рабочую директорию
COPY main.py .

#Задаем /var/data как монтируемый
VOLUME ["/var/data"]
#Задаем /var/result как монтируемый
VOLUME ["/var/result"]

#Задаем команду для выполнения программы
CMD ["python", "main.py"]
```

## 3. Docker Compose

`docker-compose.yml`:

```yaml
services:
  #Первый скрипт
  first:
    #Указание директории для сборки первого скрипта
    build: ./FirstProgram/
    #Монтирование 2 каталогов из хост системы
    volumes:
      - ./data:/var/data
      - ./result_first:/var/result

  #Второй скрипт
  second:
    #Указание директории для сборки второго скрипта
    build: ./SecondProgram/
    #Задание очередности запуска с помощью depends_on
    depends_on:
      - first
    #Монтирование 2 каталогов из хост системы
    volumes:
      - ./result_first:/var/data
      - ./result_second:/var/result
```

## 4. Запуск

Для запуска использовать команду `docker compose up --build`
Предварительно нужно создать папку `data`, в которой создать файлы, где каждая строка - это число.
Результат первого скрипта будет в папке `result_first`, результат второго скрипта будет в папке `result_second`.

## 7. Ссылка на видео

[Видео-отчёт Калышев Ян ПИбд-42](https://zyzf.space/s/65HRyTTXAzxpwBF)