75 lines
2.7 KiB
Markdown
75 lines
2.7 KiB
Markdown
# Калышев Ян ПИбд-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)
|