DAS_2024_1/kalyshev_yan_lab_2/README.md

75 lines
2.7 KiB
Markdown
Raw Normal View History

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 почти одинаковые:
```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`:
```yaml
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](https://zyzf.space/s/65HRyTTXAzxpwBF)