.. | ||
faculty_service | ||
university_service | ||
.gitignore | ||
docker-compose.yml | ||
nginx.conf | ||
readme.md |
Кашин Максим ПИбд-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 работает исправно.