.. | ||
FirstProgram | ||
SecondProgram | ||
.gitignore | ||
docker-compose.yml | ||
README.md |
Калышев Ян ПИбд-42
Описание
Этот проект предоставляет 2 контейнера с простыми python-скриптами такими, что результат первого является исходными данными для второго.
1. Варианты
Для первой программы был взят вариант: 0. Ищет в каталоге /var/data самый большой по объёму файл и перекладывает его в /var/result/data.txt.
Для второй программы был взят вариант: 2. Ищет наименьшее число из файла /var/data/data.txt и сохраняет его третью степень в /var/result/result.txt.
2. Структура 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
:
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
.