DAS_2024_1/kalyshev_yan_lab_2
2024-09-29 20:05:33 +04:00
..
FirstProgram kalyshev_yan_lab_2 is ready 2024-09-29 20:05:33 +04:00
SecondProgram kalyshev_yan_lab_2 is ready 2024-09-29 20:05:33 +04:00
.gitignore kalyshev_yan_lab_2 is ready 2024-09-29 20:05:33 +04:00
docker-compose.yml kalyshev_yan_lab_2 is ready 2024-09-29 20:05:33 +04:00
README.md kalyshev_yan_lab_2 is ready 2024-09-29 20:05:33 +04:00

Калышев Ян ПИбд-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.

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

Видео-отчёт Калышев Ян ПИбд-42