DAS_2024_1/lazarev_andrey_lab_3/README.md

77 lines
4.5 KiB
Markdown
Raw Permalink 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
## Описание проекта
Проект разворачивает 3 программы в отдельных контейнерах с использованием Docker Compose:
1. **author_service** - сервис, с CRUD операциями для авторов;
2. **publication_service** - сервис, с CRUD операциями для публикаций;
3. **nginx** - веб-сервер и прокси-сервер, является маршрутизатором.
Между первыми двумя сервисами имеется связь один(`Автор`) ко многим(`Публикация`).
## Струкутура проекта
### Проект состоит из:
- 2 папки(author_service, publication_service)
- Каждая папка содержит в себе файл с расширением `.py` с кодом программы;
- Кадлая папка сожержит в себе файл `Dockerfile` с инструкцией по созданию Docker образа.
- Файл `.gitignore` для исключения временных файлов директории `venv/`;
- Файл `docker-compose.yml` с конфигурацией Docker Compose;
- Файл `nginx.conf` конфигурации для веб-сервера NGINX с параметрами работы сервера;
- Файл `requirements.txt` с перечислением всех необходимых библиотек для запуска.
Комментарии в файлах.
## Запуск
1. Скачать и установить Docker и Docker Compose;
2. Перейти в директорию с файлом docker-compose.yml;
3. Открыть консоль и запустить сервисы командой
```bash
docker-compose up --build -d
```
4. Дождаться запуска всех сервисов
```bash
[+] Running 3/3
✔ Container lazarev_andrey_lab_2-generate-files-1 Started 0.5s
✔ Container lazarev_andrey_lab_2-first-1 Started 1.3s
✔ Container lazarev_andrey_lab_2-second-1 Started 2.0s
```
5. Остановка всех сервисов
Для завершения работы с сервисами необходимо выполнить команду:
```bash
docker-compose down
```
Дождаться завершения работы:
```bash
[+] Running 4/4
✔ Container lazarev_andrey_lab_2-second-1 Removed 0.0s
✔ Container lazarev_andrey_lab_2-first-1 Removed 0.0s
✔ Container lazarev_andrey_lab_2-generate-files-1 Removed 0.0s
✔ Network lazarev_andrey_lab_2_default Removed 0.4s
```
## Cписок команд
- Author_service
- `http://localhost:8000/author_service/author` - список авторов
- `http://localhost:8000/author_service/author/{id автора}` - конкретный автор
- `http://localhost:8000/author_service/author/full/{id автора}` - автор и полный список его публикаций
- `http://localhost:8000/author_service/author?name={имя}&second_name={фамилия}&age={возраст}` - добавление нового автора
- `http://localhost:8000/author_service/author/{id автора}?name={новое имя}` - изменение имени автора
- Publication_service
- `http://localhost:8000/publication_service/publication` - список публикаций
- `http://localhost:8000/publication_service/publication/{id публикации}` - конкретная публикация
- `http://localhost:8000/publication_service/publication/full/{id публикации}` - публикация и полная информация об авторе
- `http://localhost:8000/publication_service/publication?name={название}&public_year={год выпуска}&author_id={id автора}` - добавление новой публикации
- `http://localhost:8000/publication_service/publication/{id публикации}?name={новое название}` - изменение названия публикации
## Видеодемонстрация работоспособности
[Демонстрация работы сервисов](https://files.ulstu.ru/s/5D2i6gbLn6r2jsA)