forked from Alexey/DAS_2024_1
Пабеда...
This commit is contained in:
parent
4699fda797
commit
761cc83ebd
@ -1,3 +1,105 @@
|
|||||||
# Кашин Максим ПИбд-42
|
# Кашин Максим ПИбд-42
|
||||||
|
|
||||||
# Тематика: Учебная групп и студенты
|
# Проект "Университеты и Факультеты"
|
||||||
|
|
||||||
|
## Часть 1: Создание Docker
|
||||||
|
|
||||||
|
### Установка Docker и Docker Compose
|
||||||
|
Перед началом нужно проверить, что Docker работает, иначе использовать инструцию для 1-ой лабораторной.
|
||||||
|
|
||||||
|
### 1.1 Файл `docker-compose.yml`
|
||||||
|
В корне проекта файл `docker-compose.yml`. Этот файл будет описывать, как должны быть организованы сервисы. В данном случае рассматриваем только университет, в факультетах анологично.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: '3.8'
|
||||||
|
services:
|
||||||
|
university_service:
|
||||||
|
build:
|
||||||
|
context: ./university_service
|
||||||
|
depends_on:
|
||||||
|
- university_db
|
||||||
|
environment:
|
||||||
|
- FLASK_APP=app.py
|
||||||
|
expose:
|
||||||
|
- 8081
|
||||||
|
university_db:
|
||||||
|
image: postgres:13
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: university_user
|
||||||
|
POSTGRES_PASSWORD: password
|
||||||
|
POSTGRES_DB: universitydb
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
```
|
||||||
|
|
||||||
|
Объяснение:
|
||||||
|
- `version`: Указывает версию Docker Compose.
|
||||||
|
- `services`: Определяет микросервисы. В данном случае, мы начинаем с `university_service`.
|
||||||
|
- `build`: Указывает, что нужно построить образ для этого сервиса, используя Dockerfile из указанной директории.
|
||||||
|
- `depends_on`: Указывает, что этот сервис зависит от `university_db` (базы данных), которая будет запущена первой.
|
||||||
|
- `environment`: Определяет переменные окружения для сервиса, в данном случае указывая файл Flask.
|
||||||
|
- `expose`: Указывает, что сервис будет доступен на порту 8081 внутри Docker-сети.
|
||||||
|
|
||||||
|
### 1.2 Файл Dockerfile для сервиса университетов
|
||||||
|
В каталоге `university_service` файл `Dockerfile`. Этот файл будет содержать инструкции для сборки образа сервиса университетов. В данном случае рассматриваем только университет, в факультетах анологично.
|
||||||
|
|
||||||
|
```dockerfile
|
||||||
|
FROM python:3.9-slim
|
||||||
|
|
||||||
|
# Установка зависимостей
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
gcc \
|
||||||
|
libpq-dev \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
# Установка рабочей директории
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Копирование файлов
|
||||||
|
COPY requirements.txt requirements.txt
|
||||||
|
|
||||||
|
# Установка Python-зависимостей
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
# Копирование всех файлов приложения
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Запуск приложения
|
||||||
|
CMD ["python", "app.py"]
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### 1.3 Создание файла requirements.txt
|
||||||
|
В каталоге `university_service` файл `requirements.txt`, в котором перечислите все необходимые библиотеки для приложения. В данном случае рассматриваем только университет, в факультетах анологично.
|
||||||
|
|
||||||
|
```txt
|
||||||
|
flask
|
||||||
|
flask_sqlalchemy
|
||||||
|
psycopg2
|
||||||
|
```
|
||||||
|
|
||||||
|
### 1.5 Запуск Docker Compose
|
||||||
|
Когда все файлы созданы, можно запустить сервисы с помощью команды:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
Эта команда создаст и запустит все указанные в `docker-compose.yml` сервисы.
|
||||||
|
|
||||||
|
## Часть 2: Реализация функциональности
|
||||||
|
|
||||||
|
### 2.1 Создание сервиса для университетов
|
||||||
|
В каталоге `university_service` файл `app.py`,`service.py`,`db.py`. Этb файлы будут содержать код Flask приложения для управления университетами и базы данных для него.
|
||||||
|
|
||||||
|
### 2.2 Создание сервиса для факультетов
|
||||||
|
Каталог `faculty_service` и в нем файл `app.py`,`service.py`,`db.py`. Эти файлы будут содержать код для управления факультетами и базы данных для него.
|
||||||
|
|
||||||
|
### 2.3 Создание таблиц базы данных
|
||||||
|
Нужно создать таблицы базы данных для университетов и факультетов. Для этого созданы файлы init.sql для университета и для факультетов.
|
||||||
|
|
||||||
|
### 2.4 Тестирование API
|
||||||
|
Тестирование производится через расширение RestMan. В нем мы можем убедиться, что весь CRUD работает исправно.
|
||||||
|
|
||||||
|
## Часть 3: Ссылка на видео
|
||||||
|
[Видео-отчёт Кашин Максим ПИбд-42](https://disk.yandex.ru/i/F0Dh7RnpVL1Stg)
|
Loading…
Reference in New Issue
Block a user