forked from Alexey/DAS_2024_1
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)
|