forked from Alexey/DAS_2024_1
Пабеда...
This commit is contained in:
parent
4699fda797
commit
761cc83ebd
@ -1,3 +1,105 @@
|
||||
# Кашин Максим ПИбд-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