Кашин Максим ПИбд-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.
Шаги для запуска
-
Запуск всех сервисов:
Для запуска всех программ с помощью Docker Compose, выполните следующую команду:
docker-compose up --buildЭто создаст и запустит все три программы в последовательности.
-
Работа с томами:
Проект использует два общих тома для обмена данными между программами:
/var/data: программаprogram_0сохраняет туда свои данные, которые потом читаетprogram_1./var/result: программаprogram_1сохраняет результаты обработки, которые затем используются вprogram_2.
-
Остановка сервисов:
Для остановки всех контейнеров выполните команду:
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/(временных данных и результатов).