DAS_2024_1/turner_ilya_lab_2/README.md

87 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №2 - Разработка простейшего распределенного приложения
## ПИбд-42 || Тюрнер Илья
## Описание
В рамках данной лабораторной работы было создано два контейнера спростыми программами на python, соблюдающими условие: результат первой программы - это исходные данные второй программы.
### Цель лабораторной работы
изучение техники создания простого распределённого приложения
### 1. Варианты
Для обеих программ был выбран вариант 1.
Вариант первой программы:
**1**. Ищет в каталоге /var/data файл с наибольшим количеством строк и перекладывает его в /var/result/data.txt.
Вариант второй программы:
**1**. Ищет набольшее число из файла /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: ./WorkFirst/
#Монтирование 2 каталогов из хост системы
volumes:
- ./data:/var/data
- ./result_first:/var/result
#Вторая программа
second:
#Директория для сборки второй программы
build: ./WorkSecond/
#Задание очередности запуска через depends_on
depends_on:
- first
#Монтирование 2 каталогов из хост системы
volumes:
- ./result_first:/var/data
- ./result_second:/var/result
```
### 4. Инструкция для работы
1. Клонирование репозитория:
```
git clone <ссылка-на-репозиторий>
cd <папка репозитория>
cd <папка лабораторной работы>
```
2. Запуск контейнеров:
```
docker compose up --build
```
3. Результаты:
Итог работы первой программы будет в папке `result_first`, а второй - в `result_second`.
### Видео с демонстрацией работы:
Размещено на платформе VK видео
https://vk.com/video/@tyurner02?z=video303312410_456239076%2Fpl_303312410_-2