60 lines
3.9 KiB
Markdown
60 lines
3.9 KiB
Markdown
# Кашин Максим ПИбд-42
|
||
|
||
## Описание
|
||
|
||
Этот проект состоит из трех отдельных программ, каждая из которых находится в своей папке (`program_0`, `program_1`, `program_2`). Каждая программа запускается в отдельном Docker-контейнере и взаимодействует с другими через общие директории, примонтированные как тома (volumes). Для управления контейнерами используется `docker-compose`.
|
||
|
||
### Основная структура:
|
||
- **program_0**: выполняет подготовку для выполнение задач (генерация файлов) и сохраняет результат в директорию `./var/data`.
|
||
- **program_1**: использует данные из `./var/data`, генерируемые `program_0`, обрабатывает их и сохраняет результат в `./var/result`.
|
||
- **program_2**: берет результаты из `./var/result`, созданные `program_1`, и выполняет заключительную часть обработки и сохраняет результат в `./var/result`.
|
||
|
||
|
||
### Шаги для запуска
|
||
|
||
1. **Запуск всех сервисов:**
|
||
|
||
Для запуска всех программ с помощью Docker Compose, выполните следующую команду:
|
||
|
||
```bash
|
||
docker-compose up --build
|
||
```
|
||
|
||
Это создаст и запустит все три программы в последовательности.
|
||
|
||
2. **Работа с томами:**
|
||
|
||
Проект использует два общих тома для обмена данными между программами:
|
||
|
||
- `/var/data`: программа `program_0` сохраняет туда свои данные, которые потом читает `program_1`.
|
||
- `/var/result`: программа `program_1` сохраняет результаты обработки, которые затем используются в `program_2`.
|
||
|
||
3. **Остановка сервисов:**
|
||
|
||
Для остановки всех контейнеров выполните команду:
|
||
|
||
```bash
|
||
docker-compose down
|
||
```
|
||
|
||
## Структура проекта
|
||
|
||
- **program_0/**:
|
||
- `main.py`: основной код для первой программы (генерация файлов).
|
||
- `Dockerfile`: инструкция по созданию Docker-образа для `program_0`.
|
||
|
||
- **program_1/**:
|
||
- `main.py`: основной код для второй программы (Скрипт на задание 1.3 - Формирует файл /var/result/data.txt так, что каждая строка файла - количество строк в файлах из каталога /var/data.)
|
||
- `Dockerfile`: инструкция по созданию Docker-образа для `program_1`.
|
||
|
||
- **program_2/**:
|
||
- `main.py`: основной код для третьей программы (Скрипт на задание 2.1 - Ищет набольшее число из файла /var/result/data.txt и сохраняет его вторую степень в /var/result/result.txt.)
|
||
- `Dockerfile`: инструкция по созданию Docker-образа для `program_2`.
|
||
|
||
- **docker-compose.yml**: конфигурация для Docker Compose, описывающая, как собирать и запускать все контейнеры, а также тома, которые они используют.
|
||
|
||
- **.gitignore**: файл для исключения директории `var/` (временных данных и результатов).
|
||
|
||
### Видео-отчёт
|
||
|
||
- [Видео отчёт Кашин Максим ПИбд-42](https://disk.yandex.ru/i/NGZD2HkmZkIBww) |