3.9 KiB
Кашин Максим ПИбд-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/
(временных данных и результатов).