DAS_2024_1/kashin_maxim_lab_3
2024-10-06 00:33:30 +04:00
..
faculty_service Фух, готово. Осталось ридми. 2024-10-05 23:40:53 +04:00
university_service Фух, готово. Осталось ридми. 2024-10-05 23:40:53 +04:00
.gitignore Почти сделано. Исправить связи и сделать readme.md 2024-10-05 22:02:08 +04:00
docker-compose.yml Почти сделано. Исправить связи и сделать readme.md 2024-10-05 22:02:08 +04:00
nginx.conf Почти сделано. Исправить связи и сделать readme.md 2024-10-05 22:02:08 +04:00
readme.md Пабеда... 2024-10-06 00:33:30 +04:00

Кашин Максим ПИбд-42

Проект "Университеты и Факультеты"

Часть 1: Создание Docker

Установка Docker и Docker Compose

Перед началом нужно проверить, что Docker работает, иначе использовать инструцию для 1-ой лабораторной.

1.1 Файл docker-compose.yml

В корне проекта файл docker-compose.yml. Этот файл будет описывать, как должны быть организованы сервисы. В данном случае рассматриваем только университет, в факультетах анологично.

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. Этот файл будет содержать инструкции для сборки образа сервиса университетов. В данном случае рассматриваем только университет, в факультетах анологично.

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, в котором перечислите все необходимые библиотеки для приложения. В данном случае рассматриваем только университет, в факультетах анологично.

flask
flask_sqlalchemy
psycopg2

1.5 Запуск Docker Compose

Когда все файлы созданы, можно запустить сервисы с помощью команды:

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