.. | ||
author_service | ||
publication_service | ||
.gitignore | ||
docker-compose.yml | ||
nginx.conf | ||
README.md | ||
requirements.txt |
Лабораторная работа №2
Описание проекта
Проект разворачивает 3 программы в отдельных контейнерах с использованием Docker Compose:
- author_service - сервис, с CRUD операциями для авторов;
- publication_service - сервис, с CRUD операциями для публикаций;
- nginx - веб-сервер и прокси-сервер, является маршрутизатором.
Между первыми двумя сервисами имеется связь один(Автор
) ко многим(Публикация
).
Струкутура проекта
Проект состоит из:
-
2 папки(author_service, publication_service)
- Каждая папка содержит в себе файл с расширением
.py
с кодом программы; - Кадлая папка сожержит в себе файл
Dockerfile
с инструкцией по созданию Docker образа.
- Каждая папка содержит в себе файл с расширением
-
Файл
.gitignore
для исключения временных файлов директорииvenv/
; -
Файл
docker-compose.yml
с конфигурацией Docker Compose; -
Файл
nginx.conf
конфигурации для веб-сервера NGINX с параметрами работы сервера; -
Файл
requirements.txt
с перечислением всех необходимых библиотек для запуска.
Комментарии в файлах.
Запуск
- Скачать и установить Docker и Docker Compose;
- Перейти в директорию с файлом docker-compose.yml;
- Открыть консоль и запустить сервисы командой
docker-compose up --build -d
- Дождаться запуска всех сервисов
[+] 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
- Остановка всех сервисов
Для завершения работы с сервисами необходимо выполнить команду:
docker-compose down
Дождаться завершения работы:
[+] 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={новое название}
- изменение названия публикации